首页 > 编程 > C++ > 正文

C++实现合并排序的方法

2020-05-23 14:16:33
字体:大 中 小
来源:转载
供稿:网友

这篇文章主要介绍了C++实现合并排序的方法,实例分析了合并排序的原理与相关实现技巧,需要的朋友可以参考下

本文实例讲述了C++实现合并排序的方法。分享给大家供大家参考。具体如下:

 

 
  1. //合并排序  
  2. #include<iostream> 
  3. #include<cmath> 
  4. using namespace std; 
  5. int num[100]; 
  6. void print(int num[],int len) 
  7. { 
  8. for(int i=0;i<len;i++) 
  9. { 
  10. cout<<num[i]<<" "; 
  11. }  
  12. cout<<endl; 
  13. } 
  14. void merge(int num[],int beg,int mid,int end) 
  15. { 
  16. int temp[100]; 
  17. int t=beg; 
  18. int i=beg,j=mid+1; 
  19. while(i<=mid&&j<=end) 
  20. { 
  21. if(num[i]<num[j])  
  22. temp[t++]=num[i++]; 
  23. else 
  24. temp[t++]=num[j++]; 
  25. } 
  26. while(i<=mid) 
  27. temp[t++]=num[i++]; 
  28. while(j<=end) 
  29. temp[t++]=num[j++]; 
  30. for(int i=beg;i<=end;i++) 
  31. num[i]=temp[i]; 
  32. } 
  33. void mergeSort(int num[],int beg,int end) 
  34. { 
  35. if(beg==end) 
  36. return; 
  37. int mid=(beg+end)/2; 
  38. mergeSort(num,beg,mid); 
  39. mergeSort(num,mid+1,end); 
  40. merge(num,beg,mid,end);  
  41. } 
  42. int main() 
  43. { 
  44. int len; 
  45. while(cin>>len) 
  46. { 
  47. for(int i=0;i<len;i++) 
  48. cin>>num[i]; 
  49. mergeSort(num,0,len-1); 
  50. print(num,len); 
  51. } 
  52. return 0; 
  53. } 

希望本文所述对大家的C++程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表