排序
Jayphone17
这个作者很懒,什么都没留下…
展开
-
分治法——合并排序MergeSort
合久必分,分久必合——合并排序在数列排序中,如果只有一个属,本身就是有序的。如果只有两个数字,那么只需要一次就可以简单地排完序。也就是说,数字越少,排序越简单。那么如果有一个有大量数据组成的数列,我们很难完成排序,那该怎么办呢?我们可以考虑将其一直分解,分解直至只剩下一个数字,本身即有序,然后再将这些有序的数组合并在一起,执行一个与分解相反的过程,从而完成整个数列的排序合并排序就是采用...原创 2019-09-24 21:54:40 · 882 阅读 · 0 评论 -
分治法——快速排序QuickSort
快速排序它的基本思想是通过一组排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都要比另一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,最终将所有数据变成一个有序数列。算法设计快速排序的基本思想是基于分治策略的,其算法思想如下:分解:先从数列中取出一个元素作为基准元素。以基准元素为标准,将问题分解为两个子序列,使小于或...原创 2019-09-25 11:11:28 · 1380 阅读 · 0 评论 -
数据结构——堆,小顶堆,大顶堆,堆排序
1.简介堆是什么?堆是一种特殊的完全二叉树,就像下面这棵树一样:这棵树有一个很显著的特点,那就是所有父结点都要比子结点要小。符合这样要求的完全二叉树我们成为“最小堆”。反之,如果所有父结点都要比子结点大,这样的完全二叉树被称为”最大堆“。2.下移ShiftDown如果我们现在要删除掉最小的数字,并重新插入一个数字,再从中找出最小的数字。目前只能够先扫描所有的数字,找到最...原创 2019-10-21 18:15:34 · 2938 阅读 · 2 评论