merging sort(迭代取代递归)
来源:互联网 发布:无主之地mac汉化补丁 编辑:程序博客网 时间:2024/06/05 10:03
#include <stdio.h>void merge(int sr[],int tr[],int i,int m,int t){int j,k,l;for(k=i,j=m+1;i<=m && j<=t;k++){if(sr[i]<sr[j]){tr[k]=sr[i++];}else{tr[k]=sr[j++];}}if(i<=m){for(l=0;l<=m-i;l++){tr[k+l]=sr[i+l];}}if(j<=t){for(l=0;l<=t-j;l++){tr[k+l]=sr[j+l]; }}} void merpass(int sr[],int tr[],int s,int t){ int i=1; int j; while(i<=t-2*s+1){ merge(sr,tr,i,i+s-1,i+2*s-1); i=i+2*s; } if(i<t-s+1)merge(sr,tr,i,i+s-1,t);else{for(j=i;j<=t;j++){tr[j]=sr[j];}}}void mersort(int sr[],int tr[],int length){int k=1;while(k<length){merpass(sr,tr,k,length);k=2*k;merpass(tr,sr,k,length);k=2*k; }}int main(){int a[100],b[100],i,m;scanf("%d",&m);for(i=1;i<=m;i++){scanf("%d",&a[i]);} mersort(a,b,m);for(i=1;i<=m;i++){printf("%d ",a[i]);} return 0;}
0 0
- merging sort(迭代取代递归)
- 归并排序(merging sort)
- merging sort
- 归并排序算法(Merging Sort)
- Sorting Algorithm-Merging Sort
- PHP实现排序算法----归并排序(Merging Sort)
- 经典排序算法:归并排序(Merging Sort)
- C语言-数据结构-归并排序(merge sort)-递归 迭代-源代码及分析
- 计算阶乘(递归与迭代)
- 菲波拉契数列(递归与迭代)
- c# fibnacci(递归,迭代)
- 迭代(iteration)和递归
- 迭代(Iteration)与递归(Recursion)
- 二分查找(迭代和递归)
- FFT模板(迭代/递归)
- 迭代与递归
- 递归和迭代
- 递归与迭代
- linux下安装jdk(tar.gz方式)
- Git详解之二 Git基础
- Android学习
- 用css把表单的input输入框变成下划线
- php接收二进制流(图片)生成图片文件文件
- merging sort(迭代取代递归)
- 杭电oj2001-C语言
- TCP/IP网络编程之TCP
- Git详解之三 Git分支
- 南阳oj 1092 数字分隔(二)
- Activity间用Intent传递集合
- 支付宝、财付通、网银、百度钱包、京东钱包接口费率
- 交汇的火力
- 同样的项目,同样的tomcat 就是换了一个liux服务器发现有页面打开空白的现象