动画演示
代码实现
#include <iostream>
using namespace std;
int Partition(int arr[], int low, int height) {
int pivot = arr[low];
while (low < height) {
while (low < height && arr[height] >= pivot) {
--height;
}
arr[low] = arr[height];
while (low < height && arr[low] <= pivot) {
++low;
}
arr[height] = arr[low];
}
arr[low] = pivot;
return low;
}
void QuickSorting(int arr[], int low, int height) {
if (low < height) {
int pivotpos = Partition(arr, low, height);
QuickSorting(arr, low, pivotpos - 1);
QuickSorting(arr, pivotpos + 1, height);
}
}
void PrintInfo(int arr[], int num) {
for (int i = 0; i < num; ++i) {
cout << arr[i] << " ";
}
}
int main() {
int arr[15] = {7, 5, 3, 1, 2, 9, 15, 6, 4, 8, 13, 11, 14, 12, 10};
QuickSorting(arr, 0, 14);
PrintInfo(arr, 15);
return 0;
}
效果展示