
排序算法
HerofH_
加油啊咸鱼!
展开
-
链表排序——归并排序、快速排序
目录1 归并排序1.1 实现思路1.2 代码实现2 快速排序2.1 实现思路2.2 代码实现1 归并排序归并排序基本原理https://blog.youkuaiyun.com/qq_28114615/article/details/863457171.1 实现思路 与数组归并排序相同,主要分为以下三个步骤: ①找到链表中点。最常用的方法是双指针...原创 2019-01-19 20:27:10 · 1785 阅读 · 0 评论 -
排序算法总结——归并排序
1. 算法原理及步骤2. 代码实现3. 复杂度分析4. 稳定性分析1. 算法原理及步骤 归并排序体现的是一种分治+合并的思想,我们知道,数组长度越小,排序越简单,而不管数组有多大,都是由小数组构成的,因此,要想对一个长度为N的数组进行排序,就可以将其进行分割,分割到大小为1的小数组,然后再将每个小数组进行排序再合并,最终合并为有序的原数组,如图所示: ...原创 2019-01-12 10:00:49 · 496 阅读 · 0 评论 -
排序算法总结——堆排序
1.算法原理及步骤2.实现代码3.时间复杂度分析3.1 构建初始大顶堆时间复杂度3.2 堆调整时间复杂度补充说明4. 稳定性分析1.算法原理及步骤 要搞清楚堆排序,首先就需要明白什么是堆,在堆排序中,堆是一种类似于完全二叉树的结构,那么完全二叉树是什么呢?简单来讲,完全二叉树就是指叶子结点只存在于最后两层的树。而堆排序则是利用这一数据结构进行排序,排序...原创 2019-01-09 18:28:47 · 1804 阅读 · 0 评论 -
排序算法总结——快速排序
1.算法步骤快速排序的一般步骤如下:1.先从数列中取出一个数作为基准数。2.分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边。3.再对左右区间重复第二步,直到各区间只有一个数。2.图解算法(图片来自于《啊哈!算法》)这里需要解释一下为什么每次交换的时候都需要右边的哨兵先走:最主要是相遇点的问题,算法的最后,是需要将相遇点与基准数相互交换的,因此这里必...原创 2019-01-08 11:10:21 · 2113 阅读 · 0 评论