#include<iostream> using namespace std; //从小到大排序,即升序 int partion(int a[], int low, int high) { int tag=a[low]; while(low<high){ while(low<high&&tag<=a[high]) high--; if(low<high){ a[low]=a[high]; low++; } while(low<high&&a[low]<=tag) low++; if(low<high){ a[high]=a[low]; high--; } } a[low]=tag; return low; } void quickSort(int a[], int low, int high) { int position = partion(a, low, high); //划分 if(low < high) { quickSort(a, low, position - 1); quickSort(a, position + 1, high); } } int main() { int a[] = {4, 5, 1, 3, 2, 0, -3 ,-20, 100, 50}; quickSort(a, 0, 10 - 1); int i; for(i = 0; i < 10; i++) cout << a[i] << " "; cout << endl; return 0; } |
|