Java快速排序

2021-08-10 03:50:46 字數 1152 閱讀 9106

package sort;

/*** 快速排序

* @author ltf**/

public class fastsort2 ;

//定義開始的下標

int start = 0;

//定義最後乙個數的下標

int end = a.length-1;

//執行快排的方法

sort(a, start, end);

//遍歷輸出

for (int i : a)

}/**

* 快速排序的方法

* 比基準數大的放在基準數的右邊

* 比基準數小的放在基準數的前邊

* @param a

* @param left

* @param right

*/public static void sort(int a,int left ,int right)

//從後往前的數比基準數小了;進行位置調換

if (a[end] <= key)

//從前往後比較

//第乙個數小於等於基準數,是正確的,比較下乙個,比基準數小就是正確的

//比基準數大,就需要調換位置

while(end > start && a[start] <= key)

//判斷比基準數大  需要調換位置

if (a[start] >= key)

}//大迴圈把基準數的位置確定了,比基準數小的在基準數前邊,比基準數大的在基準數後邊

//把基準數前邊的在定義成乙個陣列,繼續比較,進行排序

//當跳出這個大while迴圈時,start和end是相等的,也就是說這個位置就是基準數的位置

//那這個時候基準數字置已經確定,但是真個陣列還沒有排序,這時候需要對整個陣列進行排序,還是用

//的這個方法進行快速排序

//start是基準數字置,他以前的比基準數都小,那就把基準數左邊的看作乙個陣列,進行快排

//start是基準數的位置,left是從最左邊開始,初始值是0,a是陣列,從0開始,到基準數減一結束,然後繼續快排

if (start > left)

//end也是基準數的位置,right是從最右邊開始,也就是最後的乙個下標,a是陣列,從end+1開始,到最後結束

if (end < right) }}

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...