首页 > 代码库 > C常用排序算法

C常用排序算法

今天重新看下C排序算法,快速、冒泡、选择排序。

 1 void qsortuser(int a[],int m,int n) 2 { 3     int i=m,j=n-1,k=a[m]; 4     if(m<n-1) 5     { 6         while(i<j) 7         { 8             while(i<j&&a[j]>k) j--; 9             if(i<j){a[i] = a[j];i++;}10             while(i<j&&a[i]<k) i++;11             if(i<j){a[j] = a[i];j--;}12         }13         a[i] = k;14         qsortuser(a,m,i);15         qsortuser(a,i+1,n);16     }17 }18 void maopao(int a[],int m,int n)19 {20     int i,j;21     for(i=m;i<n;i++)22     for(j=m;j<n-(i-m);j++)23     {24         if(a[j]>a[j+1])25         {26             a[j] = a[j]^a[j+1];27             a[j+1] = a[j]^a[j+1];28             a[j] = a[j]^a[j+1];29         }30     }31 }32 void selpaixu(int a[],int m,int n)33 {34     int i,j;35     for(i=m;i<n;i++)36     {37         for(j=1+i;j<n;j++)38         {39             if(a[i]>a[j])40             {41                 a[i] = a[i]^a[j];42                 a[j] = a[i]^a[j];43                 a[i] = a[i]^a[j];44             }45         }46     }47 }

 

C常用排序算法