排序演算法之快速排序 5

2021-10-17 08:38:14 字數 2962 閱讀 1898

//找到乙個比標準數小的

array[low]

= array[high]

;//如果左邊的數比標準數大,則low右移一位

while

(low < high && stand >= array[low]

)//找到乙個比標準數大的

array[high]

= array[low];}

//將標準數替換掉重合的數

array[low]

= stand;

}}

[2, 1, 3, 8, 9, 7, 5, 6]
public

class

quicksort1

;quicksort

(array,

0, array.length -1)

; system.out.

println

(arrays.

tostring

(array));

}public

static

void

quicksort

(int

array,

int start,

int end)

//找到乙個比標準數小的

array[low]

= array[high]

;//如果左邊的數比標準數大,則low左移一位

while

(low < high && stand >= array[low]

)//找到乙個比標準數大的

array[high]

= array[low];}

//將標準數替換掉重合的數

array[low]

= stand;

//將比標準數小的再排序

quicksort

(array, start, low)

;//將比標準數大的再排序

quicksort

(array, low +

1, end);}

}}

[1, 2, 3, 5, 6, 7, 8, 9]
public

class

quicksort1

date date1 =

newdate()

; ******dateformat ******dateformat1 =

new******dateformat

("yyyy-mm-dd hh:mm:ss");

string format1 = ******dateformat1.

format

(date1)

; system.out.

println

("排序前的時間是:"

+ format1)

;"排序前:"+arrays.tostring(arr));

quicksort

(arr,

0, arr.length -1)

;"排序後:"+arrays.tostring(arr));

date date2 =

newdate()

; ******dateformat ******dateformat2 =

new******dateformat

("yyyy-mm-dd hh:mm:ss");

string format2 = ******dateformat2.

format

(date2)

; system.out.

println

("排序後的時間是:"

+ format2);}

public

static

void

quicksort

(int

array,

int start,

int end)

//找到乙個比標準數小的

array[low]

= array[high]

;//如果左邊的數比標準數大,則low左移一位

while

(low < high && stand >= array[low]

)//找到乙個比標準數大的

array[high]

= array[low];}

//將標準數替換掉重合的數

array[low]

= stand;

//將比標準數小的再排序

quicksort

(array, start, low)

;//將比標準數大的再排序

quicksort

(array, low +

1, end);}

}}

排序前的時間是:2021-01

-0915:

55:29排序後的時間是:2021-01

-0915:

55:29

排序演算法5之快速排序

快速排序可以分解為三步 尋找基準數,比較通常就是選擇待排序的首專案或者中間專案 2.根據與基準數的大小關係,將待排序陣列分成兩個子串行 和。其中 均小於基準數,均大於基準數,這樣基準數的位置就確定了在q處。然後利用遞迴對兩個子串行進行排序。下圖是對步驟2的介紹,只是該圖是將基準元素設定為最後乙個元素...

排序演算法5 快速排序

1.什麼是快速排序 快速排序是由東尼 霍爾所發展的一種排序演算法。在平均狀況下,排序 n 個專案要 nlogn 次比較。在最壞狀況下則需要 n 次比較,但這種狀況並不常見。事實上,快速排序通常明顯比其他 nlogn 演算法更快,因為它的內部迴圈 inner loop 可以在大部分的架構上很有效 率地...

排序演算法5 快速排序

快速排序是對氣泡排序基礎上的優化版本,它打破了氣泡排序只能比對交換相鄰元素的方式,並加入了 分治 思想 1 對一串行,選定最左邊的元素作為基數p 再定義i,使i依次從左到右尋找比基數p大的元素 再定義j,使j依次從右到左尋找比基數p小的元素 當i j每每找到,便交換i j元素,直到i j相遇 2 將...