合并排序-递归分治
来源:互联网 发布:淘宝网民族风 连衣裙 编辑:程序博客网 时间:2024/05/16 03:54
按我的想法,简单地说,合并排序的思路就是:
先递归,后排序。
#include<iostream>using namespace std;void merge_sort(int a[],int p,int r);void merge(int a[],int p,int q,int r);int b[20];int main(){ int a[11]={1,49,60,12,-12,101,121,62,60,8,-100}; int len=sizeof(a)/sizeof(a[0]); merge_sort(a,0,len-1); //输出结果 for(int i=0;i<len;i++) { cout<<a[i]<<" "; } return 0;}void merge_sort(int a[],int p,int r){ int q=0; if(p<r) { q=(p+r)/2;//拆分待排序元素 merge_sort(a,p,q); merge_sort(a,q+1,r); merge(a,p,q,r);//将两个拆分后排好序的子序列合并起来 }}void merge(int a[],int p,int q,int r){ int b_index=0; //局部排序 int i=q,j=r; while(i>=p&&j>=q+1) { if(a[i]>=a[j]) { b[b_index++]=a[i--]; }else{ b[b_index++]=a[j--]; } } //下面两个if用来处理剩余的元素 while(i>=p) { b[b_index++]=a[i--]; } while(j>=q+1) { b[b_index++]=a[j--]; } b_index--; for(int i=p;i<=r;i++) { a[i]=b[b_index--]; }}
0 0
- 合并排序-递归分治
- 合并排序(分治递归)
- 分治法 合并排序递归
- 递归与分治策略-----合并排序
- 合并排序(递归分治 + 泛型)
- 递归与分治策略-2.7合并排序(归并排序)
- 递归分治算法之合并排序(Java版本)
- 分治法合并排序
- 合并排序,分治思想
- 分治合并排序
- 分治法--合并排序
- 合并排序(分治)
- 分治法合并排序
- 分治法-----合并排序
- 分治算法-合并排序
- 分治法--合并排序
- 分治---合并排序
- 分治递归排序
- ORACLE 中ROWNUM用法总结! (转)
- Web开发入门基本知识
- Java编程思想之低耦合
- 在aarch64主机中使用qemu启动虚机
- linux系统查看jdk信息
- 合并排序-递归分治
- C++ socket bind() 函数绑定错误
- LBP uniform pattern
- 大端小端
- 火辣辣的火锅
- c的指针占几个字节
- Android基础&进阶
- 现有杂乱无序的1-20二十个数,这二十个数为:1,18,4,13,6,10,15,2,17,3,19,7,16,8,11,14,9,12,5,20,试依次求出相邻四个数之和的最大和最小值
- Linux 目录结构及文件基本操作