快速排序模板
通过关键字,结合分治的思想,运用递归进行排序
当然可以直接用sort
P1177 【模板】快速排序 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

1 #include<iostream> 2 #include<algorithm> 3 using namespace std; 4 const int maxn=1e5+10; 5 int a[maxn]; 6 int n; 7 void qsort(int a[],int l,int r) 8 { 9 //根据关键词进行排序 10 int i=l,j=r,flag=a[(l+r)/2],tmp; 11 while(i<=j) 12 { 13 while(a[i]<flag) i++; 14 while(a[j]>flag) j--; 15 if(i<=j) 16 { 17 tmp=a[i]; 18 a[i]=a[j]; 19 a[j]=tmp; 20 i++; 21 j--; 22 } 23 } 24 //分治思想,借助递归 25 if(l<j) qsort(a,l,j); 26 if(r>i) qsort(a,i,r); 27 } 28 int main() 29 { 30 cin>>n; 31 for(int i=0;i<n;i++) 32 { 33 cin>>a[i]; 34 } 35 qsort(a,0,n-1); 36 for(int i=0;i<n;i++) 37 { 38 cout<<a[i]<<" "; 39 } 40 return 0; 41 }

 
                    
                
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号