|
以文本方式查看主题 - 计算机科学论坛 (http://bbs.xml.org.cn/index.asp) -- 『 算法理论与分析 』 (http://bbs.xml.org.cn/list.asp?boardid=60) ---- 合并排序算法 (http://bbs.xml.org.cn/dispbbs.asp?boardid=60&rootid=&id=87252) |
|
-- 作者:zry -- 发布时间:10/20/2010 7:53:00 PM -- 合并排序算法 //自己随课堂的小练习 ![]() //算法可能不是那么完美,如有不懂得地方或者完善的办法可以留言或邮件联系。 #define length 10 #include<iostream.h> void Merge(int a[],int left,int right,int i) { int x=0,y=0; int b[length]; for(int z=0;z<=right-left;z++) { if(x>i-left) { while(y<=right-i-1) { b[x+y]=a[i+1+y]; y++; } break; } if(y>right-i-1) { while(x<=i-left) { b[x+y]=a[left+x]; x++; } break; } if(a[left+x]<=a[i+1+y]) { b[z]=a[left+x]; x++; } else { b[z]=a[i+1+y]; y++; } } for(int c=0;c<=right-left;c++) a[left+c]=b[c]; } void MergeSort(int a[],int left,int right) { if(right-left<=1) { int m; if(a[right]<=a[left]) { m=a[right]; a[right]=a[left]; a[left]=m; } } else { int i=(right+left)/2; MergeSort(a,left,i); MergeSort(a,i+1,right); Merge(a,left,right,i); } |
|
W 3 C h i n a ( since 2003 ) 旗 下 站 点 苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》 |
54.688ms |