資料結構排序 快速排序

2022-07-22 23:57:37 字數 858 閱讀 8346

快速排序是對氣泡排序的改進,它的基本思想是通過一趟排序將資料分成兩部分,一部分中的資料都比另一部分中的資料小,再對這兩部分中的資料再排序,直到整個序列有序,如下圖所示。

快排的遞迴實現:

1 #include 2 #include 3

4intn;5

6/*7* 分割使樞軸記錄的左邊元素比右邊元素小8*/

9int partition(int *array, int low, int

high)

1019 array[low] =array[high];

20while (low < high && array[low] <=pivotkey)

2124 array[high] =array[low];25}

26 array[low] = array[0

];27

return

low;28}

2930

/*31

* 快速排序遞迴實現

32*/

33void quicksort(int *array, int low, int

high)

3441}42

43int

main()

4455 quicksort(array, 1

, n);

56 printf("

排序後為:");

57for (i = 1; i <= n; i++)

5861 printf("\n"

);62 }

氣泡排序的時間複雜度是o(n^2),快排是o(n*logn

)。快排的非遞迴實現:

資料結構 排序 快速排序

對序列 47,31,83,91,57,18,96,16 進行快速排序 首元素為基準 第二趟排序結果是 正確答案 b 你的答案 c 錯誤 18 31 16 47 57 91 96 83 16 31 18 47 57 91 96 83 16 18 31 47 57 91 96 83 16 18 31 4...

資料結構 排序 快速排序

快速排序在平均情況下是效果最好的排序演算法 每趟子表的排序都是從兩頭向中間交替逼近,接下來舉乙個例子 sorry,上面這個圖的6和5的位置畫反啦,快速排序全域性有序,一趟排序便可以確定基準值的最終位置 類別排序方法 最好時間 最壞時間 平均時間 空間複雜度 穩定性序列特徵 適用於插入排序 直接插入排...

資料結構 快速排序

include include typedef struct qnode typedef struct qlist void qlist init qlist int int void qlist print qlist int part sort qlist int int void quick ...