归并算法(分割与合并)
归并算法也是一种分治法,分治法与递归求科赫曲线,是递归变化的一种高级排序!
#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;
}
归并算法(分割与合并)相关推荐
- python分割数字_对python数据切割归并算法的实例讲解
当一个 .txt 文件的数据过于庞大,此时想要对数据进行排序就需要先将数据进行切割,然后通过归并排序,最终实现对整体数据的排序.要实现这个过程我们需要进行以下几步:获取总数据行数:根据行数按照自己的需 ...
- 基于Fork/Join框架实现对大型浮点数数组排序(归并算法和插入排序算法)
分支/合并框架 说明 重点是那个浮点数数组排序的例子,从主函数展开,根据序号看 1.GitHub代码欢迎star.你们轻轻的一点,对我鼓励特大,我有一个习惯,看完别人的文章是会点赞的. 2.个人认为学 ...
- apache hbase的region 分割与合并
原文地址:APACHE HBASE REGION SPLITTING AND MERGING 本文我们将深入探讨hbase的核心领域之一:region分割与合并. 具体来说,我们将详细讨论hbase ...
- 基于Fork/Join框架实现对大型浮点数数组排序(归并算法和插入排序算法) 1
分支/合并框架 说明 重点是那个浮点数数组排序的例子,从主函数展开,根据序号看 1.GitHub代码欢迎star.你们轻轻的一点,对我鼓励特大,我有一个习惯,看完别人的文章是会点赞的. 2.个人认为学 ...
- 归并排序时间复杂度_一文带你读懂排序算法(四):归并算法
点击上方蓝字关注我们 归并排序的基本思想核心是分治,就是把一个复杂的问题分成两个或多个相同或相似的子问题,然后把子问题分成更小的子问题,直到子问题可以简单的直接求解,最原问题的解就是子问题解的合并.算 ...
- 归并算法(Java)
归并操作(merge),也叫归并算法,指的是将两个顺序序列合并成一个顺序序列的方法. 把长度为n的输入序列分成两个长度为n/2的子序列: 对这两个子序列分别采用归并排序: 将两个排序好的子序列合并成一 ...
- python归并算法_python归并算法
python数据结构与算法总结 python常用的数据结构与算法就分享到此处,本月涉及数据结构与算法的内容有如下文章: <数据结构和算法对python意味着什么?> <顺序表数据结构 ...
- 算法分析与设计——二分归并算法
文章目录 一.问题 二.解析 三.设计 四.分析 五.代码 一.问题 二分归并排序:对n个不同的数构成的数组A[1-n]进行排序,其中n=2^k 二.解析 二分归并排序是一种很经典的分治思想的排序算法 ...
- 算法学习————自然归并算法(c/c++)
自然归并算法实现(c/c++) 前言:由于归并算法的资料已经很多了,本文主要讲述的是自然归并算法 自然归并算法VS归并算法 自然归并算法实际上是归并算法的一个变型. 例如在下文实例代码中的数组a中的元 ...
最新文章
- 对象名和函数名同名引起的莫名错误
- 八、LaTex中的表格
- linux python3安装包_Linux下安装python3及相关包
- flask 继承模版的基本使用
- 网络流最大流Edmonds-Karp算法(模板)
- 基于python技术的自动化运维是干嘛的_《Python自动化运维 技术与最佳实践》.pdf...
- spark.mllib:Optimizer
- P4149-[IOI2011]Race【点分治】
- 电脑系统哪个最好用_袪痘袪痘印哪个产品最好 祛痘印最好用的产品十大推荐...
- android h5语音,html5录音支持pc和Android、ios部分浏览器,微信也是支持的,JavaScript getUserMedia...
- python 查找IP地址归属地
- [问题2014S07] 复旦高等代数II(13级)每周一题(第七教学周)
- webpack手动构建vue和vue-cli构建使用 px2rem-loader ,全局自动转换px单位,让自适应来的更简单点!...
- 获取客户端访问的ip地址
- 交换机与交换机之间连接用五类线还是六类线?
- 解决PowerDesigner提示This data item is already used in a primary identifier
- java中1字节(8位)_Java中基本数据类型占几个字节多少位
- 1.广电、电信、联通、移动、无线覆盖、物联网络、校园入网统一认证问题痛点分析
- 智能水表自动抄表协议cjt188远传协议,支持地址自动分配检查,灵活好用、Mbus通讯测试工具是一款水表等设备的测试工具
- Android手机app启动的时候第一个Activity必须是MainActivity吗
热门文章
- Python3爬虫(六) 解析库的使用之Beautiful Soup
- LeetCode 141 Linked List Cycle
- 使用dva脚手架(dva-cli)快速构建React项目
- [FZYZOJ 1073] Password
- ECSHOP中添加自定义lbi文件
- smartphone 创建快捷方式 shorcut(1)
- ElementUI中使用地图实现地图位置选择_---SpringCloud Alibaba_若依微服务框架改造_ElementUI---工作笔记014
- 理解_授权数据模型_Spring Security OAuth2.0认证授权---springcloud工作笔记112
- MQTT工作笔记0008---服务质量
- 架构设计工作笔记004---架构中常见的概念积累--随时更新