分治4--快速排序
一、心得
二、题目和分析
分治+递归
三、代码和结果
1 #include <iostream> 2 using namespace std; 3 4 5 void qsort(int (&a)[7],int l,int r){ 6 int i,j,mid,p; 7 i=l; 8 j=r; 9 mid=a[(l+r)/2]; 10 do{ 11 while(a[i]<mid) i++; 12 while(a[j]>mid) j--; 13 if(i<=j){ 14 p=a[i];a[i]=a[j];a[j]=p; 15 i++;j--; 16 } 17 }while(i<=j); 18 if(l<j) qsort(a,l,j); 19 if(i<r) qsort(a,i,r); 20 } 21 22 int main(){ 23 int a[7]={7,3,9,15,8,1,5}; 24 qsort(a,0,6); 25 for(int i=0;i<=6;i++){ 26 cout<<a[i]<<" "; 27 } 28 cout<<endl; 29 return 0; 30 }