Java實現快速排序

2021-08-27 08:49:35 字數 1133 閱讀 6186

快速排序和氣泡排序都屬於交換排序,演算法描述:在資料序列中找乙個參照物,從資料序列兩端開始搜尋,比參照物小的,放在參照物前邊,比參照物小的放在參照物後邊

package per.data.paixu;

public class quicksort ;

quicksort(keys,0,keys.length-1);

system.out.println("\n\n"+"排序之後:");

for (int i = 0; i < keys.length; i++) }

//快速排序

public static void quicksort(int keys, int begin, int end)

//將比參照物小的值,放入一開始挖好的坑裡邊,同時又挖了乙個坑

if (i < j)

//從前往後,掃瞄比參照物大的值的下標

while (i < j && keys[i] <= vot)

//將比參照物大的值,放入前邊挖好的坑中

if (i < j)

}//當i=j的時候表示一次掃瞄完成,此時會有乙個多餘的坑,把參照物放進去

keys[i] = vot;

//輸出每一次的結果

system.out.println(begin + ".." + end + ", vot=" + vot + " ");

for(int iii = 0 ; iii < keys.length ; iii++)

system.out.println();

//遞迴參照物的後邊

quicksort(keys, begin, j - 1);

//遞迴參照物的前邊

quicksort(keys, i + 1, end);

} }}

最壞情況:o(n^2)

最好情況:o(n * log2 n)

總之,當n比較大時且資料數列隨機排列時,快速排序是「快速」的;當n較小,或者參照物選取不合適的時候,是比較慢的。

快速排序是不穩定的

排序 快速排序(java實現)

快速排序是一種非常高效的排序演算法,它採用了 分而治之 的思想,把大的拆分成小的,小的再拆分為更小的。其原理如下 對於給定一組記錄,通過一趟排序後,將原序列分為兩部分,其中前一部分的所有記錄都比後一部分的所有記錄小,然後再依次對前後兩部分的記錄進行快速排序,遞迴該過程,直到序列中所有的記錄均為有序為...

Java實現快速排序

package com.handy.ds public class quicksort for int i 0 i a.length i system.out.print a i system.out.println quicksort qs new quicksort qs.quitsort a,...

java實現快速排序

快速排序是平均速度最快的排序演算法,他的平均時間複雜度 n log n 快速排序採用分治法來進行排序,首先先給出乙個陣列,在一開始隨意選擇乙個數pivot,已pivot作為這個陣列的分界點,把大於pivot的數放在右邊,小於pivot的數放在左邊,然後在已pivot的兩邊分界點,右進行一次上一次的操...