Java快速排序

2021-08-13 23:10:09 字數 1197 閱讀 3632

/**

* 快速排序

* 原理:

* 選擇乙個值作為基準(一般第乙個元素)。比基準值小的都放在左邊,大的都放在右邊

* 一次迴圈:

* 從後向前比較,用基準值和最後乙個值比較,如果比基準值小的和a[start]交換位置,

* 若不小於跳過繼續。找到這個值後又從前往後開始比較,如果比基準值大,和a[end]交換位置,

* 如果不大於跳過。

* 這樣一次排序下來比基準值小的都在左邊,大的都在右邊

* */

public class quciksort ;

sort(a,0,a.length - 1);

for(int i = 0;i < a.length - 1;i++)

}public static int sort(int a,int low, int high)

if(a[end] < key)

//從前往後執行若小於基準元素直接跳過

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

if(a[start] > key)

}if(start > low)

if(end < high)

return a;

}}

package sort;

public class quicksortreduce ;

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

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

}public static void quicksort(int parm, int start, int end)

int i = start;

int j = end;

int povit = parm[start];

// 注意兩個while不能調換

while (i < j)

while (i < j && povit >= parm[i])

if (i < j)

}parm[start] = parm[i];

parm[i] = povit;

quicksort(parm, start, j - 1);

quicksort(parm, j + 1, end);

}}

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