在上次分享的快排算法,不知大家感觉分享的如何,上次文章里面的图比较丑一点,快排的思想核心不知道大家有没有理解到位;我们今天继续给大家分享排序算法里面的另外一种排序算法:归并排序!
一、归并排序:
1、归并排序操作的核心思想:
a、确定分界点:mid=(l+r)/2
b、递归排序左边和右边(排完左右两边的数,就会成为两个有序的序列了)
c、归并(把上面的两个有序序列合并成一个有序的序列,用一个简单的词来说,就是合二为一!)
2、举例:
比如我们有两组已经排好的序列数字,我们要进行第三步合并,该如何进行呢?思路如下:
a、这里先定义一个空的数组res,它主要是为了临时存放合并序列排序好的数字;我们从图中可以看到,第一个序列指针i指向数字1,第二序列指针j指向2,这个时候我们要比较两个数字的大小,小的数字就放到临时数组res里面去,这里我们明显知道数字1小于2,所以把1放到临时数组res里取
b、然后指针i往下移动,再次进行比较,明显发现指针j指向的数字2更小,把它放到res里面去,然后指针j往下移动,指针i不动,后面依次类推
审核编辑:符乾江
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
算法
+关注
关注
23文章
4456浏览量
90760 -
排序
+关注
关注
0文章
31浏览量
9662
发布评论请先 登录
相关推荐
C语言实现经典排序算法概览
冒泡排序(英语:Bubble Sort)是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序(如从大到小、首字母从A到Z)错误就把他们交换过来。
python升序和降序排序代码
Python是一种简洁而强大的编程语言,提供了许多实用的函数和方法来排序数据。在本文中,我们将详细讨论Python中的升序和降序排序。我们将深入探讨不同的排序算法、它们的复杂度以及如何
详解DeepMind排序算法
DeepMind 的这一发现确实居功至伟,但不幸的是,他们未能解释清楚算法。下面,我们来详细看看他们发布的一段汇编代码,这是一个包含三个元素的数组的排序,我们将伪汇编转换为汇编:
利用强化学习来探索更优排序算法的AI系统
前言 DeepMind 最近在 Nature 发表了一篇论文 AlphaDev[2, 3],一个利用强化学习来探索更优排序算法的AI系统。 AlphaDev 系统直接从 CPU 汇编指令的层面入手
详细介绍8种最常用的排序算法
在计算机科学领域中,排序算法是一种基本的算法。排序算法可以将一个数据集合重新排列成一个按照某种规则有序的集合,常用于数据检索、数据压缩、数据
ABB工业机器人排序算法
冒泡排序的英文Bubble Sort,是一种最基础的交换排序。之所以叫做冒泡排序,因为每一个元素都可以像小气泡一样,根据自身大小一点一点向数组的一侧移动。
冒泡排序的基本概念是:
评论