快速排序,优化
2012-10-11 00:49
225 查看
//快速排序 优化型 //没有采用交换,而是使用的赋值。 #include <iostream> using namespace std; void print(int * a,int n) { for(int i = 0;i < n ; i++) { cout << a[i] << ' ' ; } cout << endl; } void sort(int *a,int n) { if(n<1) { return ; } int L = 0; int R = n - 1; int t = a[L]; while(L<R) { while(L<R && t <= a[R]) { R--; } a[L] = a[R]; while(L<R && t >= a[L]) { L++; } a[R] = a[L]; } a[L] = t; sort(a,L); sort(a+L+1,n-L-1); } int main() { int a[10] = {1,4,7,2,5,8,3,6,9,0}; sort(a,10); cout << "排序结果:" ; print(a,10); }