最好理解的快速排序遞迴實現

2021-09-27 09:45:17 字數 992 閱讀 4685

package quickpai;

public

class

quickpai

int temp;

int index=data[start]

;//比較樣本

//start和end的值不可以改變,因為要作為下一輪遞迴的頭和尾,所以負值i和j,讓它們幫忙移動下標做判斷條件

int i=start;

int j=end;

//如果i小於j,則一直尋找左邊大於index的值,和右邊小於index的值

while

(i//當發現有data[j]temp=data[j]

;//移動左邊下標

while

(data[i]

<=index&&i//交換值,大的值給右邊,小的值給左邊

data[j]

=data[i]

; data[i]

=temp;

}//當i=j時候,將data[i]或者說是data[j]的值與data[start]交換,並且進入遞迴

data[start]

=data[j]

; data[j]

=index;

this

.quicklist

(data, start, j-1)

;//左邊

this

.quicklist

(data, j+

1, end)

;//右邊

}public

static

void

main

(string[

] args)

; qp.

quicklist

(data,

0, data.length-1)

;for

(int i =

0; i < data.length; i++)}

}

快速排序演算法的遞迴實現的個人理解

關於快速排序,該演算法實現原理是將要排序的一組資料根據乙個被選中的資料,以這個資料為中心將資料分成兩側,一側大一側小,使用遞迴,將分好的兩組資料分別進行再次分組,直至不能再分,這時排序則排序完畢。因此快速排序演算法的中心應該是如何根據選中的資料將資料分成兩組,而這裡這個選中的資料則直接預設為資料組的...

快速排序 遞迴實現

快速排序演算法 用到了 分治法 遞迴演算法 package com.xiahui public class quicksort quicksort quicksort new quicksort quicksort.quicksort a,0,6 for int i 0 i a.length i p...

快速排序 遞迴實現

快速排序演算法 用到了 分治法 遞迴演算法 package com.xiahui public class quicksort quicksort quicksort new quicksort quicksort.quicksort a,0,6 for int i 0 i a.length i p...