1.jpg (295.56 KB, 下載次數(shù): 43)
下載附件
2024-1-15 21:39 上傳
- #define _CRT_SECURE_NO_WARNINGS
- #include<stdio.h>
- void QSort(int L[100], int low, int high);
- int Partition(int L[100], int low, int high);
- int main()
- {
- int n;
- int i;
- int L[100] = { 0 };
- scanf("%d", &n);
- for (i = 1; i <= n; i++)
- scanf("%d", &L[i]);
- QSort(L, 1, n);
- return 0;
- }
- void QSort(int L[100], int low, int high)
- {
- //排序的時候可以是小于,因為最后一個數(shù)不用再處理,但是要輸出,
- //故盡管不處理,也一定要進入if條件判斷,來打印這個值,也就是一定要low <= high
- if (low <= high)
- {
- //這里的理解和二叉樹的遍歷思路是一樣的,也就是先打印左邊的樞軸量,
- //再打印右邊的樞軸量,最后打印根的值
- int pivotloc = Partition(L, low, high);
- QSort(L, low, pivotloc - 1);//可以理解為打印左邊的樞軸量
- QSort(L, pivotloc + 1, high);//打印右邊的值
- printf("%d ", L[pivotloc]);//打印根的值
- }
- }
- int Partition(int L[100], int low, int high)
- {
- L[0] = L[low];
- int pivotkey = L[low];
- while (low < high)
- {
- while (low < high && L[high] >= pivotkey)
- high--;
- L[low] = L[high];
- while (low < high && L[low] <= pivotkey)
- low++;
- L[high] = L[low];
- }
- L[low] = L[0];
- return low;
- }
復制代碼
vc++代碼工程:
輸出快速排序遞歸算法隱含遞歸樹的后序遍歷序列.7z
(1.84 MB, 下載次數(shù): 4)
2024-1-15 21:42 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|