快速排序的思想是基於分治法加上遞迴思想,排序陣列時,將陣列分成兩個小部分,然後對它們遞迴排序,直到它們都不可再分為止。快速排序的平均執行時間是o(nlog(n)),遠比插入排序的o(n^2)時間小。
/**
* 快速排序
* @param arr
* @param start
* @param end
* @return
*/private static int quicksort(int arr, int start, int end)else else
}} arr[i] = temp;
//start位大於end位才有需要進行快速排序
if(i - 1 > start)
quicksort(arr, start, i - 1);
if(i + 1 < end)
quicksort(arr, i + 1, end);
return arr;
}
其實這個演算法還有乙個問題是,每次排序都是以第乙個元素來劃分的,如果劃分元素是隨機的,或許更試用多種不同環境。
(ps:本人學疏才淺,如果有錯誤和問題請多多指教多多包涵!)
java 快速排序
public class myquicksort while strvoid middle strvoid low lowif low hight else if hight middle temp strvoid hight strvoid hight strvoid low strvoid lo...
快速排序(java)
快速排序 public class quacksort int pivot arr low 取第乙個數作為中間數 左滑塊當前的下標數,從第二個數字開始,從最後乙個開始 int left low 1 int right high 右滑塊當前的下標數 while left right 從右邊開始找 wh...
快速排序(java)
各種排序演算法裡快速排序的平均時間複雜度最好,最近專門去理解了一下快速排序,現在記錄如下 public static void quicksort int array,int low,int height array i array j while i j temp array i array j ...