四 归并排序

来源:互联网 发布:java和js对象的区别 编辑:程序博客网 时间:2024/05/16 08:54

三 代码:

/*归并排序*/#include<iostream>using namespace std;void merge(int *array,int *result,int left,int mid,int right){int i=left,j=mid+1,index=left;while(i<=mid&&j<=right){if(array[i]<array[j])result[index++]=array[i++];elseresult[index++]=array[j++];}while(i<=mid)result[index++]=array[i++];while(j<=right)result[index++]=array[j++];for(int i=left;i<index;++i)//从临时数组复制回原数组。array[i]=result[i];}void merge_sort(int *array,int *result,int left,int right){if(left<right){int mid=(left+right)/2;merge_sort(array,result,left,mid);merge_sort(array,result,mid+1,right);merge(array,result,left,mid,right);}}int main(){int array[32],result[32];int data,i=0;while(cin>>data)array[i++]=data;merge_sort(array,result,0,i-1);int j=i;for(i=0;i<j;++i)cout<<result[i]<<endl;}


原创粉丝点击