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