這篇文章主要介紹了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++程序設計有所幫助。
新聞熱點
疑難解答