首页 > 代码库 > 数据结构之排序算法

数据结构之排序算法

快速排序算法:http://blog.csdn.net/liuchen1206/article/details/6954074

归并排序算法:http://blog.csdn.net/left_la/article/details/8656953

收集仅供参考

排序代码:

 1 #include<iostream> 2 using namespace std; 3 void quickSort(int a[],int,int); 4 int main() 5 { 6     int array[]={34,65,12,43,67,5,78,10,3,70},k; 7     int len=sizeof(array)/sizeof(int); 8     cout<<"The orginal arrayare:"<<endl; 9     for(k=0;k<len;k++)10         cout<<array[k]<<",";11     cout<<endl;12     quickSort(array,0,len-1);13     cout<<"The sorted arrayare:"<<endl;14     for(k=0;k<len;k++)15         cout<<array[k]<<",";16     cout<<endl;17     system("pause");18     return 0;19 }20 21 void quickSort(int s[], int l, int r)22 {23     if (l< r)24     {      25         int i = l, j = r, x = s[l];26         while (i < j)27         {28             while(i < j && s[j]>= x) // 从右向左找第一个小于x的数29                 j--; 30             if(i < j)31                 s[i++] = s[j];32             while(i < j && s[i]< x) // 从左向右找第一个大于等于x的数33                 i++; 34             if(i < j)35                 s[j--] = s[i];36         }37         s[i] = x;38         quickSort(s, l, i - 1); // 递归调用39         quickSort(s, i + 1, r);40     }41 }
快速排序

 

 1 void Merge(int *a, int p, int q, int r) 2 { 3     int n1 = q-p+1; 4     int n2 = r-q; 5     int *L = new int[n1+1]; 6     int *R = new int[n2+1]; 7     int i, j, k; 8      9     for (i=0; i<n1; i++){10         L[i] = a[p+i];11     }12     for (j=0; j<n2; j++){13         R[j] = a[q+j+1];14     }15     L[n1] = 10000000;16     R[n2] = 10000000;17 18     for (i=0, j=0, k=p; k<=r; k++)19     {20         if (L[i]<=R[j])21         {22             a[k] = L[i];23             i++;24         }else{25             a[k] = R[j];26             j++;27         }28     }29 30     delete []L;31     delete []R;32 }33 34 void MergeSort1(int *a, int p, int r)35 {36     if (p<r)37     {38         int q = (p+r)/2;39         MergeSort1(a, p, q);40         MergeSort1(a, q+1, r);41         Merge(a, p, q, r);42     }43 }
归并排序

 

数据结构之排序算法