排序 4 快速排序

2021-08-15 01:37:35 字數 860 閱讀 7980

快速排序和氣泡排序一樣屬於交換排序,它是一種非常高效的排序。它採用了一種分治的策略,把大的拆分成

小的,再把小的拆分為更小的。

快速排序是一種不穩定的排序

時間複雜度:最好情況:o(nlogn)  最壞情況:o(n2)  平均情況:o(nlogn)

空間複雜度:o(logn)

那麼快速排序主要是什麼思想呢?

對於一組無序資料,先任選乙個記錄作為基準,一般選第乙個為基準,然後將資料與這個基準進行比較,分為左右區間

小於它的放在前面,大於它的放在後面,然後通過遞迴呼叫對左右區間進行快速排序,直到所有資料有序為止

**如下:

#include void sort(int par_array, int low, int high)

i = low;

j = high;

index = par_array[i]; //基準

while(i < j)

par_array[i] = index;

sort(par_array, low, i-1); //遞迴左右區間,直到有序

sort(par_array, i+1, high);

}void quicksort(int array, int length)

int main1()

; int len = sizeof(a) / sizeof(a[0]);

quicksort(a, len);

for (i = 0; i < len; i++)

printf("\n");

return 0;

}

4 快速排序

2015,煙台大學計算機與控制工程學院 檔名稱 haxibiao.cpp 完成日期 2015年12月14日 問題描述 用序列作為測試資料,1 直接插入排序 2 希爾排序 3 氣泡排序 4 快速排序 5 直接選擇排序 6 堆排序 7 歸併排序 8 基數排序。include define maxsize...

4 快速排序

快速排序是一種分治的遞迴演算法,從本質上來說,它是歸併排序的就地版本。屬於原址排序。1 思路 把待排列的資料分為兩個子列,從數列中挑出乙個數作為 基準 然後遍歷其他資料並和 基準 比較,把小於它的放前面,大於它的放後面。之後通過遞迴,將各個子串行劃分為更小的序列,直到把小於基準值元素的子數列和大於基...

排序演算法4 快速排序

編寫乙份快速排序,完成對元素序列37,19,43,22,22,89,26,92按照從小到大順序排列。演算法思想 快速排序是氣泡排序演算法的改進,也屬於交換型別的排序演算法,它的基本思想描述如下 1 從第j個元素開始向前依次將每個元素與樞軸元素pivot比較。如果當前元素大於pivot,則比較前乙個元...