排序之快速排序

2022-08-31 13:24:07 字數 1121 閱讀 3862

由氣泡排序改進而來的。在待排序的n個記錄中任取乙個記錄(通常取第乙個記錄),把該記錄放入適當位置後,資料序列被此記錄劃分成兩部分。所有關鍵字比該記錄關鍵字小的記錄放置在前一部分,所有比它大的記錄放置在後一部分,並把該記錄排在這兩部分的中間(稱為該記錄歸位),這個過程稱作一趟快速排序。

特點:

1)演算法不穩定

2)排序過程中需要定位表的上下界,適用於順序

3)n大時,快排是最快的

1 #include 2 #include 3 #include 4 #include 5 #include 6

using

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