#include<iostream> #include<vector> using namespace std; void quick_sort(vector<int>& data, int left, int right) { if (left >= right) { return; } // 否则就开始在原数组上选区基准值进行交换 int key = data[right]; // 选区最后一个数 int i = left - 1; for (int j = left; j < right; j++) { if (data[j] <= key) { i++; swap(data[i], data[j]); } } // 将基准值放到i+1的位置 swap(data[i + 1], data[right]); // i+1就是分界点 int index = i + 1; quick_sort(data, left, index - 1); quick_sort(data, index + 1, right); } int main() { vector<int> data; // 输入要排序的数列 int n, d; cin >> n; // 输入数列大小 while (n-- && cin >> d) // 循环输入 { data.push_back(d); } int left = 0; int right = data.size() - 1; quick_sort(data, left, right); for (int i = 0; i <= right; i++) { cout << data[i] << ' '; } cout << endl; return 0; }