排序演算法一 快速排序

2021-07-28 07:56:11 字數 1338 閱讀 6686

package math;

/** * 快速排序:思路:使用兩個座標指標low,high 和基準值:key為第乙個值(low) 。

* 初始化時設定序列的頭和尾為low,high。從high開始比較key,如果比key小則交換位置,然後從low比較key如果大於key則交換位置

* 如此反覆執行

* @author cyd

* */

public class quicksort

/** 構造方法

*/public quicksort();

system.out.println("int陣列,排序前");

print(a);

sort(a);

system.out.println("\n"+"快速排序後");

print(a);

} /*

* 開始排序的入口,避免空陣列

* @param a 形參需要排序的陣列

*/public void sort(int a)

} /*

* * @param a

* @param low 預設佇列頭

* @param high 預設佇列尾

* */

public void qsort(int a,int low,int high)

a[high]=a[low];

} a[low]=key;

return low; }

public void print(int a)

/** 構造方法

*/public quicksort();

system.out.println("int陣列,排序前");

print(a);

sort(a);

system.out.println("\n"+"快速排序後");

print(a);

} /*

* 開始排序的入口,避免空陣列

* @param a 形參需要排序的陣列

*/public void sort(int a)

} /*

* * @param a

* @param low 預設佇列頭

* @param high 預設佇列尾

* */

public void qsort(int a,int low,int high)

a[high]=a[low];

} a[low]=key;

return low; }

public void print(int a){

for(int i=0;i

排序演算法(一) 快速排序

突然覺得在本科的時候自己的基本功練習的不是很過關,趁著學python的熱乎勁好好把基礎演算法過一過,等以後面試的時候也不會死的太慘。快速排序 quicksort 快速排序的可以說是在資料量較大且資料夠隨機的情況下,平均時間複雜度最好的演算法,如果你沒辦法判斷待排序資料的隨機度和規模,用quickso...

排序演算法之一 快速排序

1 先從數列中取出乙個數作為基準數。2 分割槽過程,將比這個數大的數全放到它的右邊,小於或等於它的數全放到它的左邊。3 再對左右區間重複第二步,直到各區間只有乙個數。1 預排序的輸入非常常見,因此不要選擇第乙個數作為基準數 2 隨機數的生成也較為昂貴 3 採用三數中值分割法 取左中右三個元素的中值作...

排序演算法(一) 快速排序 quicksort

在陣列中任取乙個元素作為樞紐元 pivot 將陣列中除了樞紐元以外的元素劃分成兩個集合 乙個集合 s1 中的元素大於樞紐元,另乙個集合 s2 中的元素小於樞紐元。對兩個集合分別進行 quicksort 遞迴 最後返回較小數集合 樞紐元 較大數集合的陣列。平均執行時間為 o n log n 最長執行時...