快速排序java

2021-08-10 06:19:56 字數 857 閱讀 3867

public

class

quicksort

private

static

super anytype>> void

quicksort(anytype a, int left, int right) //從第2個數開始比較, 第乙個數是三數取中的第乙個數

while ( a[--j].compareto(pivot) > 0) {} //從倒數第三個數開始比較, 最後兩數是樞紐和 三數中的最後乙個數

if (i < j)

swapreferences(a, i, j);

else

break;

}swapreferences(a, i, right - 1); //此時,a[i].compareto(pivot) >= 0, 交換樞紐和i

quicksort(a, left, i-1); //遞迴的對左右子串行進行快速排序

quicksort(a, i+1, right);

} else

}private

static

super anytype>> anytype median3(anytype a, int left, int right)

if (a[right].compareto(a[left]) < 0)

if (a[right].compareto(a[center]) < 0)

swapreferences(a, center, right - 1); // 把樞紐值放到 right - 1 位置

return a[right - 1]; // 返回樞紐值的位置

}

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