归并排序递归

来源:互联网 发布:ae mac 中文破解版 编辑:程序博客网 时间:2024/06/05 19:32
#include<iostream>using namespace std;void Merge(int a[],int first,int mid,int end,int temp[]){int i,m,j,n,k;i=first;m=mid;j=mid+1;n=end;k=0;while(i<=m&&j<=n){if(a[i]<=a[j])temp[k++]=a[i++];elsetemp[k++]=a[j++];}while(i<=m){temp[k++]=a[i++];}while(j<=n){temp[k++]=a[j++];}for(i=0;i<k;i++){a[first+i]=temp[i];}}void Split(int num[],int first,int end,int temp[]){int mid;if(first<end){mid=(first+end)/2;Split(num,first,mid,temp);Split(num,mid+1,end,temp);Merge(num,first,mid,end,temp);}}int main(){int num[]={4,5,23,1,6,67,87,53};//test ;int temp[8];Split(num,0,7,temp);for(int i=0;i<8;i++)cout<<num[i]<<" ";cout<<endl;system("pause");return 0;}

0 0
原创粉丝点击