这篇文章主要介绍了C++实现合并排序的方法,实例分析了合并排序的原理与相关实现技巧,需要的朋友可以参考下
本文实例讲述了C++实现合并排序的方法。分享给大家供大家参考。具体如下:
- //合并排序
- #include<iostream>
- #include<cmath>
- using namespace std;
- int num[100];
- void print(int num[],int len)
- {
- for(int i=0;i<len;i++)
- {
- cout<<num[i]<<" ";
- }
- cout<<endl;
- }
- void merge(int num[],int beg,int mid,int end)
- {
- int temp[100];
- int t=beg;
- int i=beg,j=mid+1;
- while(i<=mid&&j<=end)
- {
- if(num[i]<num[j])
- temp[t++]=num[i++];
- else
- temp[t++]=num[j++];
- }
- while(i<=mid)
- temp[t++]=num[i++];
- while(j<=end)
- temp[t++]=num[j++];
- for(int i=beg;i<=end;i++)
- num[i]=temp[i];
- }
- void mergeSort(int num[],int beg,int end)
- {
- if(beg==end)
- return;
- int mid=(beg+end)/2;
- mergeSort(num,beg,mid);
- mergeSort(num,mid+1,end);
- merge(num,beg,mid,end);
- }
- int main()
- {
- int len;
- while(cin>>len)
- {
- for(int i=0;i<len;i++)
- cin>>num[i];
- mergeSort(num,0,len-1);
- print(num,len);
- }
- return 0;
- }
希望本文所述对大家的C++程序设计有所帮助。
新闻热点
疑难解答