排序算法
文章平均质量分 89
为什么会这样1994
为什么bug 和 春天的柳絮一样多到数不清
展开
-
冒泡排序
相关概念 稳定:如果 a 原本在 b 前面,而 a = b,排序之后 a 任在 b 前面 不稳定:如果 a 原本在 b 前面,a = b,排序之后 a 可能会出现在 b 后面 时间复杂度:对排序数组总的操作次 空间复杂度:算法在计算机内执行时所需存储空间的度量 冒泡排序(BUBBLE SORT) 原理:比较两个相邻元素,将值大的元素交换至右端。 思路: 依次比较两个元素,将小数放在前...原创 2018-10-31 11:40:05 · 153 阅读 · 0 评论 -
选择排序
文章目录选择排序(SELECTION SORT)原理动态效果示意图思路 选择排序(SELECTION SORT) 原理 初始时在序列中找到最小元素,放在序列的起始位置作为已排序序列;然后,再从剩余未排序的元素中继续寻找最小元素,放到已排序序列的末尾,依此类推,直至所有元素排序完毕。 注意选择排序和冒泡排序的区别:冒泡排序通过依次交换相邻两个顺序不合法元素的位置,从而将当前最小元素放到合适的位置;而...原创 2018-11-03 11:08:01 · 1664 阅读 · 0 评论 -
直接插入排序
文章目录插入排序 (STRAIGHT INSERTION SORT)原理动态效果示意图思路代码实现 插入排序 (STRAIGHT INSERTION SORT) 原理 插入排序就是每一步将一个待排数据按其大小插入到已经排序的数据中的适当位置,直到全部插入完毕。 动态效果示意图 思路 1. 假设我们有一组无序序列a[1]、a[2]、a[3].........a[n] 2. 我们先将这个序列中下标为...原创 2018-11-01 22:01:12 · 232 阅读 · 0 评论 -
快速排序
文章目录快速排序(QUICK SORT)原理动态示意图 快速排序(QUICK SORT) 原理 通过一组排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另一部分的所有数据要小,然后再按照此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此使所有数据变成有序序列。 动态示意图 ...原创 2018-11-06 15:09:27 · 116 阅读 · 0 评论 -
归并排序
文章目录归并排序(MERGE SORT)原理 归并排序(MERGE SORT) 原理原创 2018-11-04 22:29:48 · 147 阅读 · 0 评论 -
堆排序
文章目录完全二叉树完全二叉树的重要性质堆堆排序 完全二叉树 完全二叉树 对于一个树高为 h 的二叉树,如果其第 0 层至第 h-1 层都满。如果最下面一层节点不满,则所有节点在左边的连续排列,空位都在右边。这样的树就是一颗完全二叉树。 完全二叉树的重要性质 如果n个节点的完全二叉树的节点按照层次并按从左到右的顺序从0开始编号,对于每一个节点都有: 序号为0的节点是根 对于 i 大于0,其父节点...原创 2019-04-21 15:42:17 · 94 阅读 · 0 评论 -
希尔排序
希尔排序(SHELL SORT) 原理 对直接插入排序分析得知,其算法的时间复杂度为 O(n2n^2n2),但是,若待排记录序列为正序时,其时间复杂度可提高到 O(n)。由此可设想,如果待排记录按关键字基本有序,直接插入排序的效率可以大大提高。从另一方面来看,直接插入排序算法简单,所以在 n 值很小时效率比较高。希尔排序正是从这两点出发对直接插入排序改进而得到的一种插入排序算法。 基本思想: 先将...原创 2019-07-01 10:42:23 · 113 阅读 · 0 评论