二路归并排序
来源:互联网 发布:java多级菜单 编辑:程序博客网 时间:2024/05/22 04:14
递归版本(也是最方便的版本咯)
#include<iostream>#include<cstdio>const int max=1000;void merge(int *rui,int L1start,int L1end,int L2start,int L2end)//分组归并 {int i=L1start,j=L2start;int temp[max],index=0;while(i<=L1end&&j<=L2end){if(rui[i]<=rui[j]){temp[index++]=rui[i++];}else{temp[index++]=rui[j++];}}while(i<=L1end){temp[index++]=rui[i++];}while(j<=L2end){temp[index++]=rui[j++];}for(int i=0;i<index;++i){rui[L1start+i]=temp[i];//注意i不能从0开始,二路的话右边那组起点可不是0 }}void MergeSort(int *str,int left,int right){if(left<right)//这是递归边界 {int mid=(left+right)/2;MergeSort(str,left,mid);MergeSort(str,mid+1,right);merge(str,left,mid,mid+1,right);}}using namespace std;int main(){int str[]={66,12,33,57,64,27,18,100,24,599};MergeSort(str,0,9);for(int i=0;i<10;++i){cout<<str[i]<<" ";} return 0;}
0 0
- 归并排序:二路归并
- 归并排序--二路归并
- 二路归并排序
- 二路归并排序
- 二路归并排序
- 二路归并排序
- 二路归并排序
- 二路归并排序
- 二路归并排序
- 二路归并排序
- 二路归并排序
- 二路归并排序
- 二路归并排序
- 二路归并排序
- 二路归并排序
- 二路归并排序
- 二路归并排序
- 二路归并排序
- [pyhton]python cookbook学习笔记
- 【Java学习笔记】Comparable接口的实现和使用
- 50个C/C++面试题
- Spring的refresh()方法相关异常
- CocoaPod安装第三方库
- 二路归并排序
- Binary Tree Right Side View
- js中加载并解析xml文件, 动态添加标签,控件
- python strip()函数
- iOS网络编程3—JSON解析
- 转机
- android 集成支付宝(二)
- 剑指offer--从上往下打印二叉树
- 三层架构入门