快速排序的遞迴實現

2021-08-19 23:34:31 字數 617 閱讀 7308

1.快速排序的思路

1)在陣列中選擇乙個數作為基準,為了避免效能惡化,可採用隨機數來選擇;

2)把隨機選擇的基準數交換到第乙個位置或者最後乙個位置;

3)順序遍歷陣列,把小於基準數的放在基準的左邊,大於基準數的放在基準數的右邊,從而把陣列分為兩個子陣列;

4)分別對兩個子陣列重複步驟1-3,直到所有的元素都排好序;

舉例如下圖所示:

2.**實現

#include #includeusing namespace std;

int partition(int arry, int len, int start, int end)

} }//small+1並交換是為了把基準元素放在合適的位置,即所有比它小的數的後面

small++;

swap(arry[small], arry[end]);

return small;

}void quicksort(int arry,int len, int start, int end)

快速排序 遞迴實現

快速排序演算法 用到了 分治法 遞迴演算法 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...

遞迴實現快速排序

所有查詢中hash查詢效率最高,在所有排序中,快速排序的效率也是最高的。採用遞迴函式的方法來實現快速排序!include include include intquick sort int int,int int partion int int,int int main int argc,const...