MergeSort

MergeSort#include<iostream>#include<climits>usingnamespacestd;voidMerge(intSourceArry[],intStart,intMid,intEnd){ intlen1,len2;…

大家好,欢迎来到IT知识分享网。MergeSort"

#include <iostream> #include <climits> using namespace std; void Merge(int SourceArry[],int Start,int Mid,int End) { int len1,len2; len1 = Mid-Start+1; len2 = End-Mid; int *p1 = new int[len1+1]; int *p2 = new int[len2+1]; for(int i=0;i<len1;i++) p1[i] = SourceArry[Start+i]; p for(int i =0;i<len2;i++) p2[i] = SourceArry[Mid+i+1]; p1[len1]= INT_MAX; p2[len2]=INT_MAX; int x,y; x=y=0; for(int i =Start;i<=End;i++) { if(p1[x]<=p2[y]) SourceArry[i] = p1[x++]; else SourceArry[i] = p2[y++]; } delete [] p1; delete [] p2; } void MergeSort(int SourceArry[],int First,int Last) { int Mid; if(First<Last) { Mid = (First+Last)/2; MergeSort(SourceArry,First,Mid); MergeSort(SourceArry,Mid+1,Last); Merge(SourceArry,First,Mid,Last); } } int main() {     int p[]={11,10,9};     MergeSort(p,0,2);    for(int i=0;i<3;i++)     cout<<p[i]<<',';     cout<<endl;     cout<<sizeof(p)/sizeof(int); }

转载于:https://my.oschina.net/pirtt/blog/395339

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/20779.html

(0)

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信