关于归并排序
来源:互联网 发布:淘宝店铺需要的软件 编辑:程序博客网 时间:2024/06/05 08:33
应该说早就知道了,但是一直没有实现,一般用快排的,但是今天实现时,问题还不少啊,主要是等号问题的
#include <stdio.h>#include <stdlib.h>void combine(int low,int high,int arr[]) //将两列有顺序的合并起来{ int i,j,m,n; int brr[30]={0}; for(i=low;i<=high;i++) //将arr的值赋给brr { brr[i]=arr[i]; } j=(low+high)/2; //其中一个数组的上限 n=j+1; //另一数组的下限 m=low; while(n<=high||low<=j) //n和low分别表示两个数组的变化指针 { while((brr[low]>=brr[n]||low>j)&&n<=high) //当前一个数组已经完了或都第一个当前 { //小于第二个的当前取第一个的,注意等号。 arr[m]=brr[n]; n++; m++; } while((brr[low]<=brr[n]||high<n)&&low<=j) { arr[m]=brr[low]; low++; m++; } }}void mergesort(int arr[],int low,int high){ int t,i,j; if(high>low) { mergesort(arr,low,(high+low)/2); //divide mergesort(arr,(high+low)/2+1,high); combine(low,high,arr); }}int main(){ int i ,n; int arr[30]={0}; scanf("%d",&n); for(i=0;i<n;i++) { scanf("%d",&arr[i]); } mergesort(arr,0,n-1); for(i=0;i<n;i++) { printf("%d ",arr[i]); } return 0;}
- 关于归并排序
- 关于归并排序的练手
- 关于归并排序的思考
- 关于插入排序与归并排序
- 关于快速排序与归并排序
- 再读算法导论关于归并排序
- 关于归并排序的算法优化策略
- 关于归并排序运行时间的证明
- 关于对于归并排序的理解
- 关于Matrix归并排序的想法
- 关于归并排序的简单介绍
- 归并排序-归并排序
- 排序(四)——关于归并排序
- 排序(四)——关于归并排序
- Java关于排序的介绍2-归并排序
- 关于多路归并排序 外部排序 败者树
- 归并和归并排序
- 归并与归并排序
- 基于.NET/C#开发跨平台Windows Phone 7、iPhone及Android应...
- 3D拾取算法--共同探讨
- 内核list_entry宏分析
- CentOS-6将安装光盘做为YUM库来安装程序
- android XML转义字符 常用几个 网上找到
- 关于归并排序
- 自旋锁(Spinlock)加锁过程实现(arm平台)
- linux下解压命令大全
- Java中的instanceof关键字
- 浅谈java的内存管理机制
- Implementing Descendant Navigation 实现下一代导航
- U-boot支持jssf2分区的实现
- Optimizing Layouts for TV 优化TV布局
- sql脚本源码在vss中无法进行版本比对的解决方案