排序
天生吾徒有俊才
这个作者很懒,什么都没留下…
展开
-
【数据结构】排序之堆排序
堆排序想要了解堆排序,就得先了解什么是堆。想要了解什么是堆,先要了解什么叫完全二叉树。想要了解什么是完全二叉树,先要了解什么是满二叉树。想要了解满二叉树…emm到满二叉树就够了。一些基本的概念满二叉树,很容易理解,就是一个把节点铺满的二叉树。一个n层的二叉树,除了第n层节点全是叶子节点之外,其他层的节点,必须都有左右两个子节点。如下图:完全二叉树的定义比较抽象,可以借助满二叉树理解。完全二叉树可以视为一个满二叉树在最后一层从右至左不间断地删除节点,比如:这两个都是完全二叉树。原创 2020-12-23 13:01:02 · 358 阅读 · 0 评论 -
【数据结构】排序之归并排序
归并排序归并,即“递归合并”。归并排序的主要思路Q:我们排序的目的是什么?A:让无序的序列变得有序。比如说,下面有一个序列:排序前排序后76543211234567如果我们将这个序列从中间附近分开,分成两个子序列,想办法让这两个子序列变得有序。然后再把两个有序的子序列合并成一个有序的子序列,那么我们的排序不就完成了吗?如下图:这样一个大的任务被分成了两个子任务:对两个子序列进行排序排序前排序后76544567321123递归原创 2020-12-22 00:23:47 · 161 阅读 · 0 评论 -
【数据结构】排序之快速排序
快速排序思路+代码快速排序基本原理可以看出,快排这个算法很狂啊,直接叫自己快速排序。它的基本思想很简单,被称为分治思想分治:即分而治之,即把一个问题转化成多个与其相似的小问题,再去研究小问题的解法。实现上,常常使用递归来实现快速排序的基本思路是:找出一个基准点(称作pivot),通过某种方式的移动,将pivot左面变成都是小于等于pivot的元素,将其右面变成都是大于等于pivot的元素。这样,就产生了一个以pivot为中心的,更加趋于有序的序列:再去对pivot的左半部分和右半部分进行相同原创 2020-12-21 17:14:48 · 252 阅读 · 0 评论