归并排序的思想是:先归一,再合并

归一的目的是将各个子数组归一成有序数组,合并的目的是将有序子数组合并为一个

伪代码

//2、合并化
MERGE(sourceArr,tempArr,sIndex,midIndex,eIndex)i = sIndexj = midIndex+1k = sIndex
//取出两个有序子序列中最小的一个元素,放入新的有序数列中while i! = midIndex+1 and j!=eIndex+1if sourceArr[i] < sourceArr[j]tempArr[k] = sourceArr[i]i++elsetempArr[k] = sourceArr[j]j++k++
//前面的有序数列中还有元素while i != midIndex+1tempArr[k++] = sourceArr[i++]
//后面的有序数列还有元素while j != eIndex+1tempArr[k++] = sourceArr[j++]
//将有序数列拷贝给原数列for m = sIndex to eIndexsourceArr[m] = temp[m]//1、归一化
MERGESORT(sourceArr,tempArr,sIndex,eIndex)//类似二分查找一样,每次取半if sIndex < eIndexmid = sIndex + (eIndex - sIndex)/2MERGESORT(sourceArr,tempArr,sIndex,mid)MERGESORT(sourceArr,tempArr,mid+1,eIndex)MERGE(sourceArr,tempArr,sIndex,mid,eIndex)

https://blog.csdn.net/weixin_42503261/article/details/100139338

归并排序算法-伪代码相关推荐

  1. c++分治法求最大最小值实现_程序员:算法导论,分治法、归并排序,伪代码和Java实现...

    分治法 我们首先先介绍分治法.分治法的思想:将原问题分解为几个规模较小但类似于原问题的子问题,递归地求解这些子问题,然后在合并这些子问题的解来解决原问题的解. 还是拿扑克牌举例子,假设桌上有两堆牌面朝 ...

  2. 归并排序算法详解及示例

    归并排序 归并排序算法是在分治算法的基础上设计出来的一种排序算法,它可以可以对指定的序列完成升序,(由小到大),或降序(由大到小),时间复杂度为 O ( n l o g n ) O(nlogn) O( ...

  3. 算法设计与分析 ——插入排序算法与归并排序算法比较

    插入排序算法与归并排序算法比较 实验目的 通过插入排序算法与归并排序算法效率对比体会算法在求解问题中的重要性. 实验内容 分别编写函数实现插入排序算法和归并排序算法: 利用随机函数产生大量数据存入数组 ...

  4. 【java排序】 归并排序算法、堆排序算法

    一.归并排序算法 基本思想: 归并(Merge)排序法是将两个(或两个以上)有序表合并成一个新的有序表,即把待排序序列分为若干个子序列,每个子序列是有序的.然后再把有序子序列合并为整体有序序列. 归并 ...

  5. JavaScript实现MergeSort归并排序算法(附完整源码)

    JavaScript实现MergeSort归并排序算法(附完整源码) Comparator.js完整源代码 Sort.js完整源代码 MergeSort.js完整源代码 Comparator.js完整 ...

  6. C语言merge sort归并排序算法(附完整源码)

    C语言merge sort归并排序算法 merge sort归并排序算法的完整源码(定义,实现) merge sort归并排序算法的完整源码(定义,实现) #ifndef MERGE_SORT_H # ...

  7. python 归并排序算法_python基本算法之实现归并排序(Merge sort)

    0.前言 评判一个算法的好坏的标准: 时间复杂度 空间复杂度 1.归并排序算法是什么? 冒泡排序(Bubble Sort)是一种建立在归并操作上面的一种有效的排序算法,由John von neuman ...

  8. 《Iterative-GAN》的算法伪代码整理

    花了一下午时间整理本人的论文Iterative-GAN的算法伪代码,由于篇幅较长,投会议方面的文章就不加入了,以后如果投期刊再说.留此存档. 转载于:https://www.cnblogs.com/p ...

  9. 排序算法:归并排序算法实现及分析

    归并排序算法介绍 归并排序(Merging Sort)就是利用归并的思想实现排序的放.它的原理是假设初始序列含有n个记录,则可以看成是n个有序的子序列,每个子序列的长度为1,然后两两归并,得到n/2个 ...

最新文章

  1. 深度学习与计算机视觉系列(9)_串一串神经网络之动手实现小例子
  2. 你应该知道的 Nginx 配置清单
  3. Leetcode刷题 232题:用栈实现队列(基于python3和c++两种语言)
  4. Servlet的初始化参数
  5. CentOS7密码忘记解决方法GRUB菜单加密
  6. 8bit黑白图像的灰度值范围是_浅谈工业CT图像灰度值
  7. RepVGG算法详解
  8. 2015蓝桥杯省赛---java---B---8(饮料换购)
  9. 随便说说:在ASP.NET应用程序中上传文件
  10. win7变成linux桌面背景,教大家把Ubuntu界面改造成Windows7系统
  11. Netty入门笔记-Linux网络I/O模型介绍
  12. 编写PhotoShop支持遥感图像数据
  13. linux iptable 使用指南
  14. SQL 2008下载地址以及全新安装详细过程
  15. 范式通俗理解:1NF、2NF、3NF和BNCF
  16. CMPP错误码(zzzz)
  17. XCOM串口调试软件的安装与使用(附串口及驱动资源包)
  18. 皮革行业经销商在线系统:简化采购审批流程,轻松管控代理商
  19. linux如何批量操作,linux批量操作命令锦集
  20. HDLBits刷题全记录(五)

热门文章

  1. 论文写作——如何作图(visio/ppt+Adobe Acrobat Pro)
  2. UNIX常用命令(C站最全,一文通关)
  3. Git:git-pull 的用法总结
  4. UTM-wgs84投影坐标系
  5. schedule定时任务
  6. JSON.stringify()和JSON.parse()
  7. 云计算、社交网络和移动互联网
  8. ARMSYS6410开发板产品FAQ
  9. 直接访问mysql的BDB存储引擎
  10. 办公技巧巧用Excel群发电子邮件(转)