#include<iostream> usingnamespace std; constint N = 10; voidquickSort(int *data, int left, int right){ //排序结束 if (left >= right) { return; } int base = data[left]; int i = left; int j = right; //循环直到i=j while (i != j) { //先从右边开始,因为基准取的是第一个数据 //当数据大于基准数继续递减 while (i < j && data[j] >= base) { j--; } //如果i<j 则data[j] < base,移动 if (i < j) { data[i] = data[j]; } //同理 while (i < j && data[i] <= base) { i++; } if (i < j) { data[j] = data[i]; } } //最后移动基准数 data[i] = base; //递归 quickSort(data, left, i - 1); quickSort(data, i + 1, right); } intmain(){ int data[N]; for (int i = 0; i != N; i++) { cin >> data[i]; } quickSort(data, 0, N - 1); for (int i = 0; i != N; i++) { cout << data[i] << " "; } }