首页 > 代码库 > 数据结构之排序算法
数据结构之排序算法
快速排序算法: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 }
数据结构之排序算法
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。