快速排序思想就是找到乙個基準值,然後讓比它小的在它前面,比它大的在它後面
然後用遞迴思想解決比它小的一部分和比它大的一部分區間
partiton作用:分割
index:記錄基準值的下標位置
public static void quicksort(int array)
public static void innerquicksort(int array,int left,int right)
核心:從左邊數起較大的元素與從右起較小的元素進行交換
資料結構書上最常用的方法,雖然時間複雜度不會改變,但是相對比起其他幾種方法來說花時間較少
for迴圈找到相對小的元素,另乙個指標red
第四種方法【相同元素歸併至中間】
不做具體介紹返回值以陣列形式放回
private static int partition(int array, int left, int right)
wrap(array,p,q);
} wrap(array,p,right);
return p;
}private static int partition2(int array,int left,int right)
array[p]=array[q];
} if(p==q)
array[p]=pivot;
return p;
}public static int partition3(int array,int left,int right)
} wrap(array,red,right);
return red;
}
public static void main(string args) ;
quicksort(array);
system.out.println(arrays.tostring(array));
}
七種基本排序
排序 所謂排序,就是使一串記錄,按照其中的某個或某些關鍵字的大小,遞增或遞減的排 列起來的操作。穩定性 假定在待排序的記錄序列中,存在多個具有相同的關鍵字的記錄,若經過排序,這 些記錄的相對次 序保持不變,即在原序列中,r i r j 且r i 在r j 之前,而在排序後的序列中,r i 仍在r j...
七種排序方法
一 快速排序 1.簡單介紹 快速排序是由東尼 霍爾所發展的一種排序演算法。在平均狀況下,排序 n 個專案要 n log n 次比較。在最壞狀況下則需要 n2 次比較,但這種狀況並不常見。事實上,快速排序通常明顯比其他 n log n 演算法更快,因為它的內部迴圈 inner loop 可以在大部分的...
七種排序方法
一 快速排序 1.簡單介紹 快速排序是由東尼 霍爾所發展的一種排序演算法。在平均狀況下,排序 n 個專案要 n log n 次比較。在最壞狀況下則需要 n2 次比較,但這種狀況並不常見。事實上,快速排序通常明顯比其他 n log n 演算法更快,因為它的內部迴圈 inner loop 可以在大部分的...