天天看點

快速排序____解釋"一趟快速排序"

一趟快速排序的算法是:

1)設定兩個變量i、j,排序開始的時候:i=0,j=N-1;

2)以第一個數組元素作為關鍵資料,指派給key,即 key=A[0];

3)從j開始向前搜尋,即由後開始向前搜尋(j -- ),找到第一個小于key的值A[j],A[i]與A[j]交換;

4)從i開始向後搜尋,即由前開始向後搜尋(i ++ ),找到第一個大于key的A[i],A[i]與A[j]交換;

5)重複第3、4、5步,直到 I=J; (3,4步是在程式中沒找到時候j=j-1,i=i+1,直至找到為止。找到并交換的時候i, j指針位置不變。另外當i=j這過程一定正好是i+或j-完成的最後令循環結束。)

待排序的數組A的值分别是:(初始關鍵資料:key=49) 注意關鍵key永遠不變,永遠是和key進行比較,無論在什麼位置,最後的目的就是把key放在中間,小的放前面大的放後面。

49 38 65 97 76 13 27

那麼經過一趟快速排序之後的結果是:27 38 13 49 76 97 65,即所有大于key49的數全部在49的後面,所有小于key(49)的數全部在key(49)的前面

轉載于:https://www.cnblogs.com/wwjyt/archive/2013/02/23/3153130.html