归并算法也是一种分治法,分治法与递归求科赫曲线,是递归变化的一种高级排序!

#include <iostream>
#include<stdio.h>
#include<string>
#define MAX 100
#define SENTINEL 999999
using namespace std;int L[MAX/2+2],R[MAX/2+2];
int cnt;
//归并算法,将两个已经排序的序列合并成一个序列的操作
//分治法(Divide and Conquer)
void MyMerge(int A[],int n,int left,int mid,int right)
{//分割int n1=mid-left;int n2=right-mid;for(int i=0; i<n1; i++) L[i]=A[left+i];for(int i=0; i<n2; i++) R[i]=A[mid+i];L[n1]=R[n2]=SENTINEL;//左右数组最后一位做个标记//合并int i=0,j=0;for(int k=left; k<right; k++){cnt++;if(L[i]<=R[j]) A[k]=L[i++];else A[k]=R[j++];}
}void MyMergeSort(int A[],int n,int left,int right)
{if(left+1<right){int mid=(left+right)/2;MyMergeSort(A,n,left,mid);MyMergeSort(A,n,mid,right);MyMerge(A,n,left,mid,right);}
}int main()
{cnt=0;int A[MAX]= {9,6,7,2,5,1,8,4,2};MyMergeSort(A,9,0,9);//cout<<sizeof(A)/sizeof(A[0]);for(int i=0; i<9; i++){if(i){cout<<" ";}cout<<A[i];}cout<<endl;cout<<"比较次数:";cout<<cnt;return 0;
}

归并算法(分割与合并)相关推荐

  1. python分割数字_对python数据切割归并算法的实例讲解

    当一个 .txt 文件的数据过于庞大,此时想要对数据进行排序就需要先将数据进行切割,然后通过归并排序,最终实现对整体数据的排序.要实现这个过程我们需要进行以下几步:获取总数据行数:根据行数按照自己的需 ...

  2. 基于Fork/Join框架实现对大型浮点数数组排序(归并算法和插入排序算法)

    分支/合并框架 说明 重点是那个浮点数数组排序的例子,从主函数展开,根据序号看 1.GitHub代码欢迎star.你们轻轻的一点,对我鼓励特大,我有一个习惯,看完别人的文章是会点赞的. 2.个人认为学 ...

  3. apache hbase的region 分割与合并

    原文地址:APACHE HBASE REGION SPLITTING AND MERGING  本文我们将深入探讨hbase的核心领域之一:region分割与合并. 具体来说,我们将详细讨论hbase ...

  4. 基于Fork/Join框架实现对大型浮点数数组排序(归并算法和插入排序算法) 1

    分支/合并框架 说明 重点是那个浮点数数组排序的例子,从主函数展开,根据序号看 1.GitHub代码欢迎star.你们轻轻的一点,对我鼓励特大,我有一个习惯,看完别人的文章是会点赞的. 2.个人认为学 ...

  5. 归并排序时间复杂度_一文带你读懂排序算法(四):归并算法

    点击上方蓝字关注我们 归并排序的基本思想核心是分治,就是把一个复杂的问题分成两个或多个相同或相似的子问题,然后把子问题分成更小的子问题,直到子问题可以简单的直接求解,最原问题的解就是子问题解的合并.算 ...

  6. 归并算法(Java)

    归并操作(merge),也叫归并算法,指的是将两个顺序序列合并成一个顺序序列的方法. 把长度为n的输入序列分成两个长度为n/2的子序列: 对这两个子序列分别采用归并排序: 将两个排序好的子序列合并成一 ...

  7. python归并算法_python归并算法

    python数据结构与算法总结 python常用的数据结构与算法就分享到此处,本月涉及数据结构与算法的内容有如下文章: <数据结构和算法对python意味着什么?> <顺序表数据结构 ...

  8. 算法分析与设计——二分归并算法

    文章目录 一.问题 二.解析 三.设计 四.分析 五.代码 一.问题 二分归并排序:对n个不同的数构成的数组A[1-n]进行排序,其中n=2^k 二.解析 二分归并排序是一种很经典的分治思想的排序算法 ...

  9. 算法学习————自然归并算法(c/c++)

    自然归并算法实现(c/c++) 前言:由于归并算法的资料已经很多了,本文主要讲述的是自然归并算法 自然归并算法VS归并算法 自然归并算法实际上是归并算法的一个变型. 例如在下文实例代码中的数组a中的元 ...

最新文章

  1. 对象名和函数名同名引起的莫名错误
  2. 八、LaTex中的表格
  3. linux python3安装包_Linux下安装python3及相关包
  4. flask 继承模版的基本使用
  5. 网络流最大流Edmonds-Karp算法(模板)
  6. 基于python技术的自动化运维是干嘛的_《Python自动化运维 技术与最佳实践》.pdf...
  7. spark.mllib:Optimizer
  8. P4149-[IOI2011]Race【点分治】
  9. 电脑系统哪个最好用_袪痘袪痘印哪个产品最好 祛痘印最好用的产品十大推荐...
  10. android h5语音,html5录音支持pc和Android、ios部分浏览器,微信也是支持的,JavaScript getUserMedia...
  11. python 查找IP地址归属地
  12. [问题2014S07] 复旦高等代数II(13级)每周一题(第七教学周)
  13. webpack手动构建vue和vue-cli构建使用 px2rem-loader ,全局自动转换px单位,让自适应来的更简单点!...
  14. 获取客户端访问的ip地址
  15. 交换机与交换机之间连接用五类线还是六类线?
  16. 解决PowerDesigner提示This data item is already used in a primary identifier
  17. java中1字节(8位)_Java中基本数据类型占几个字节多少位
  18. 1.广电、电信、联通、移动、无线覆盖、物联网络、校园入网统一认证问题痛点分析
  19. 智能水表自动抄表协议cjt188远传协议,支持地址自动分配检查,灵活好用、Mbus通讯测试工具是一款水表等设备的测试工具
  20. Android手机app启动的时候第一个Activity必须是MainActivity吗

热门文章

  1. Python3爬虫(六) 解析库的使用之Beautiful Soup
  2. LeetCode 141 Linked List Cycle
  3. 使用dva脚手架(dva-cli)快速构建React项目
  4. [FZYZOJ 1073] Password
  5. ECSHOP中添加自定义lbi文件
  6. smartphone 创建快捷方式 shorcut(1)
  7. ElementUI中使用地图实现地图位置选择_---SpringCloud Alibaba_若依微服务框架改造_ElementUI---工作笔记014
  8. 理解_授权数据模型_Spring Security OAuth2.0认证授权---springcloud工作笔记112
  9. MQTT工作笔记0008---服务质量
  10. 架构设计工作笔记004---架构中常见的概念积累--随时更新