java快速排序

2021-09-25 05:14:22 字數 731 閱讀 5567

快速排序的思想:可以分為三個步驟。

1.先定下來乙個基準數,當然這個數在一組資料的大小如果偏中間的話可以減少很多任務作量

2.將這組資料分為兩個區,小於基準資料的放在左邊,大於基準數的放在右邊

3.對左右兩個分割槽繼續進行比較分割槽操作,直到只剩下乙個數時,就完成了排序

快速排序的優點:沒有額外的空間開銷,排序速度快,並且資料的移動量較少

快速排序的缺點:不穩定

// 2. 把第乙個小於val的元素值寫入l裡面,並且l++

if(l < r)

// 3. 從l往r的方向找第乙個大於val的數字

while(l < r && arr[l] < val)

// 4. 把第乙個大於val的元素值寫入r裡面,並且r--

if(l < r)

}arr[l] = val;

return l;

}快速排序的優化:

由於快速排序的特性導致越有序效率越低,而在接近有序的序列,插入排序的效率是最高的,所以優化方向可以讓資料範圍小到一定程度,用插入排序替換快速排序

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)

快速排序的思想是基於分治法加上遞迴思想,排序陣列時,將陣列分成兩個小部分,然後對它們遞迴排序,直到它們都不可再分為止。快速排序的平均執行時間是o nlog n 遠比插入排序的o n 2 時間小。快速排序 param arr param start param end return private s...