经典排序——归并排序——C语言版
来源:互联网 发布:淘宝联盟手机版5.2苹果 编辑:程序博客网 时间:2024/06/07 04:47
/*归并排序*//*先将数组从中间逐个拆分,比较拆分后的两组数据,并将其合并,最终合并称为原数组*/#include <stdio.h>int merge(int s[],int low,int mid,int high){ int k[high-low+1]; int i,j,t=0; i=low; j=mid+1; while(i<=mid&&j<=high) { if(s[i]<=s[j]) { k[t]=s[i]; i++; t++; } else { k[t]=s[j]; j++; t++; } } while(i<=mid&&j>high) { k[t]=s[i]; //printf("%d\n",s[i]); i++; t++; } while(j<=high&&i>mid) { k[t]=s[j]; j++; t++; } //printf("%d\n",i); for (i = 0; i < t; i++) { s[low + i] = k[i]; } /*for (i = 0; i <t; i++) { printf("%d ",k[i]); } printf("\n");*/ return *s;}int merge_sort(int s[],int low, int high){ int mid; //int i; if(low<high) { mid=(low+high)/2; merge_sort(s,low,mid); merge_sort(s,mid+1,high); merge(s,low,mid,high); } /*for (i = 0; i < high; i++) { printf("%d ",s[i]); } printf("\n");*/ return *s;}int main(){ int s[5]; int n,i; n=5; for(i=0;i<n;i++) { scanf("%d",&s[i]); } merge_sort(s,0,n-1); for(i=0;i<n;i++) { printf("%d ",s[i]); }}
0 0
- 经典排序——归并排序——C语言版
- 经典排序——插入排序——C语言版
- 经典排序——冒泡排序——C语言版
- 经典排序——堆排序——C语言版
- 经典排序——希尔排序——C语言版
- 经典排序——快速排序——C语言版
- 经典排序——桶排序——C语言版
- 经典排序——基数排序LSD——C语言版
- 归并排序 --- C语言版
- 归并排序C语言版
- 归并排序(C语言版)
- 经典排序算法——归并排序
- 经典排序算法——归并排序
- 排序—归并排序
- 归并排序(C语言版)
- 归并排序(C语言版)
- 读书笔记—C 归并排序
- 经典算法学习——归并排序
- sql语句增加表单字段ALTER TABLE ADD 增加多个字段 外键约束
- POJ3484_Showstopper_前缀和思想&&二分
- V4L2视频驱动程序开发之驱动方法poll 和 应用程序select
- 分布式架构学习之持续集成:010--Maven私有库和本地库的安装与配置(Sonatype Nexus + Maven)
- Javascript用递归的方式遍历json数组
- 经典排序——归并排序——C语言版
- jsp数据交互1
- Libsvm使用说明(三)
- linux红帽系统管理:DNS服务
- CString,string,char数组的转换
- 35. Search Insert Position
- Relief RCNN: UtilizingConvolutionalFeatureInterrelationshipforFastObject DetectionDeployment阅读笔记
- removeElement
- 数据结构与算法分析 c++11 练习3.4 3.5 给定两个已排序的表L1和L2,求交集和并集