Java資料結構之 快速排序的優化

2021-08-20 01:55:36 字數 1528 閱讀 2282

一. 資料元素較少時用直接插入

具體實現見**:

//直接插入排序

public static void insertsort(int array,int start,int end)

//在迴圈中找到了比tmp小的第乙個元素跳出迴圈

else

}//把tmp賦值到最小值的後面

array[j+1] = tmp;

} }public static int partition(int array,int start,int end)

if(low >= high)else

while(low < high&&array[low] <= tmp)

if(low >= high)else

} array[low] = tmp;

return low;

} public static void quick(int array,int start,int end)

int par = partition(array, start, end);

if(par > start+1)

if(par < end - 1)

} public static void quicksort(int array)

二. 聚集相同元素

聚集相同元素法就是進行一次快速排序之後,將與基準相同的都移到基準的附近。

例:

接下來可以將左右par左右兩邊的12移到基準12附近

交換後如圖:

這樣就將與par相等的元素聚集在了一起。接下來看一下具體的**。

public static int focusnum(int array,int start,int end,int par,int left,int right)else

}} left = parleft;//最後的parleft指向的是聚集後與基準相同的最後乙個元素的左邊的下標

//找右邊,與左邊相同

for(int i = par+1;i <= end;i++)else

}} right = parright;//最後的parright指向的是聚集後與基準相同的最後乙個元素的右邊的下標

int b = new int[2];

b[0] = left;

b[1] = right;

return b;//將這個陣列返回

} public static void quick(int array,int start,int end)

if(par < end - 1)

}

資料結構之排序演算法 快速排序 java

5快速排序 快排 public class quicksort partition a,0,a.length 1 print a test public void testquicksort quicksort a,0,a.length 1 print a public void quicksort...

java 資料結構 快速排序

public static int partition int array,int lo,int hi array lo array hi while array lo key hi lo array hi array lo array hi key return hi public static ...

資料結構排序之快速排序

本來昨天晚上就可以把快速排序發上去,沒想到昨晚csdn竟然維護,那麼就只能在停電的情況下下用學校的卡的要死的網發這快速排序了,不停多好,停電了還得自己掏腰包買個充電檯燈,裝的好像像學霸一樣,實際就是乙個大學渣,我也就不jjyy,直接說快速排序的思想,我是這樣理解的,用乙個變數作為基準,在拿出i和j兩...