快速排序

  
  
  
  
  1. #include<iostream> 
  2. using namespace std; 
  3.  
  4. int partition(int A[],int p,int r) 
  5.     int x=A[r]; 
  6.     int i=p-1;             //i记录当前第一个大于基准的前一个元素的位置。 
  7.     int temp=-22222; 
  8.     for(int j=p;j!=r;++j) 
  9.     { 
  10.         if(A[j]<x) 
  11.         {                                                
  12.             ++i; 
  13.  
  14.             temp=A[i]; 
  15.             A[i]=A[j]; 
  16.             A[j]=temp;         //交换两个元素 
  17.         } 
  18.     } 
  19.  
  20.     temp=A[i+1]; 
  21.     A[i+1]=A[r]; 
  22.     A[r]=temp; 
  23.     return i+1; 
  24. void quick(int A[],int p,int r) 
  25.     int q; 
  26.     if(p<r) 
  27.     { 
  28.         q=partition(A,p,r); 
  29.          
  30.          
  31.         quick(A,p,q-1); 
  32.      
  33.         quick(A,q+1,r); 
  34.          
  35.  
  36.     } 
  37.  
  38. int main() 
  39.     int A[]={2,8,7,1,3,5,6,4}; 
  40.     quick(A,0,7); 
  41.     for(int i=0;i!=8;++i) 
  42.         cout<<A[i]<<endl; 
  43.     return 0; 

 

你可能感兴趣的:(快速排序)