【算法】归并--C语言实现归并排序递归算法
来源:互联网 发布:天猫美工培训 编辑:程序博客网 时间:2024/06/10 20:56
#include <stdio.h>#define M 5void MergeSort(int r[],int r1[],int r2[],int s,int t);void Merge(int r[],int r1[],int s,int m,int t);int main(){ int i; int r[M]; int r1[M]; int r2[M]; for(i = 0; i < M; i ++) { scanf("%d",&r[i]); } MergeSort(r,r1,r2,0,M-1); for(i = 0; i < M; i ++) { printf("%d/n",r1[i]); } return 0;}void MergeSort(int r[],int r1[],int r2[],int s,int t){ if(s == t) { r1[s] = r[s]; } else { int m; m = (s + t)/2; MergeSort(r, r2, r1, s, m); //归并排序前半个子序列 MergeSort(r, r2, r1, m+1, t); //归并排序后半个子序列 Merge(r2, r1, s, m, t); //将两个已排序的子序列归并 }}void Merge(int r[],int r1[],int s,int m,int t){ int i; int j; int k; i = s; j = m + 1; k = s; while(i <= m && j <= t) { if(r[i] <= r[j]) { r1[k] = r[i]; k++; i++; } else { r1[k] = r[j]; k++; j++; } } if(i <= m) { while(i <= m) { r1[k] = r[i]; k++; i++; } } else { while(j <= t) { r1[k] = r[j]; k++; j++; } } }
- 【算法】归并--C语言实现归并排序递归算法
- 归并排序算法(递归实现)
- 归并排序算法(递归实现)
- 【算法导论】归并排序,C语言实现
- C语言--归并排序算法实现
- C语言归并排序算法的实现
- C语言实现归并排序算法
- 归并排序递归算法
- 【算法】归并--实现归并排序非递归算法
- 归并排序的实现(排序算法c语言描述)
- 排序算法的C语言实现-归并排序
- 归并排序递归实现C语言
- 归并排序非递归实现C语言
- 归并排序 递归法 C语言 实现
- 非递归实现归并排序算法
- 归并排序算法 递归及循环实现
- C语言实现快排、归并排序、快排改进算法的递归和非递归算法
- 排序算法c语言描述---归并排序
- 误差、权值、偏差的变化情况
- GCC 4.5.0 & GMP 5.0.1 的安装问题一例
- Microsoft SQL Server 2005 整合、集成SP3方法
- 又听到“曾经的你”了,那个时候的许巍,真是神了。
- “无法找到运行搜索助理需要的一个文件”的解决办法
- 【算法】归并--C语言实现归并排序递归算法
- SQL Server 数据库移植后不能执行大数据量查询 解决方法
- 各种语言的Hello World程序
- ip地址分类
- The first blog page fo me
- 如何关闭 outlook Ekpress 提示压缩
- 数据库设计札记 - 视图
- newcf函数的误差、权值情况
- 乱码问题解决方案