由氣泡排序改進而來的。在待排序的n個記錄中任取乙個記錄(通常取第乙個記錄),把該記錄放入適當位置後,資料序列被此記錄劃分成兩部分。所有關鍵字比該記錄關鍵字小的記錄放置在前一部分,所有比它大的記錄放置在後一部分,並把該記錄排在這兩部分的中間(稱為該記錄歸位),這個過程稱作一趟快速排序。
特點:
1)演算法不穩定
2)排序過程中需要定位表的上下界,適用於順序
3)n大時,快排是最快的1 #include 2 #include 3 #include 4 #include 5 #include 6using
namespace
std;78
void show(vector &number)914
}1516void show0(vector &number)
1724 cout <26//
排序演算法之快速排序
27void quicksort(vector &number, int head, int
tail)
2843
while (key > number[low] && low 44 low++;
45if (low 4650
}51 number[low] =key;
52 quicksort(number, head, high - 1
);53 quicksort(number, high + 1
, tail);54}
55}5657
intmain()
5867
show0(number);
68 cout <69 quicksort(number, 0, number.size() - 1
);70
show0(number);
71 cout <72 system("
pause");
73 }
排序之快速排序
快速排序的在內排中起到比較重要的作用,平均時間複雜度達到o nlogn 公升序快速排序 1 int partition vector vi,int start,int end 11 vi start key 12return start 13 14void quickcore vector vi,i...
排序之快速排序
有沒有既不浪費空間又可以快一點的排序演算法呢?那就是 快速排序 啦!光聽這個名字是不是就覺得很高階呢。假設我們現在對 6 1 2 7 9 3 4 5 10 8 這個10個數進行排序。首先在這個序列中隨便找乙個數作為基準數 不要被這個名詞嚇到了,就是乙個用來參照的數,待會你就知道它用來做啥的了 為了方...
排序之快速排序
該方法的基本思想是 1 先從數列中取出乙個數作為基準數。2 分割槽過程,將比這個數大的數全放到它的右邊,小於或等於它的數全放到它的左邊。3 再對左右區間重複第二步,直到各區間只有乙個數 o nlogn 出處 includeusing namespace std void quicksort int ...