
排序
文章平均质量分 78
Redamanc
眸子清亮,
脑子灵光。
展开
-
排序 - 希尔排序
希尔排序前言算法代码辅助函数过程模拟测试代码运行结果复杂度分析参考资料前言我们前面总结了三种排序算法,分别是:冒泡排序、直接选择排序、直接插入排序我们会发现,即使各种排序算法的花样繁多,但是,时间复杂度都是 O(n^2) 。我们都能理解,一个优秀的排序算法的首要条件就是速度。然而在很长的时间里,计算机学术界充斥着“排序算法不可能突破 O(n^2)”的声音。终于有一天(1959年),D.L.Shell 提出来了希尔排序,突破了 O(n^2) 的时间复杂度。算法我们前面总结的直接插入排序在某原创 2021-03-14 16:47:47 · 476 阅读 · 1 评论 -
排序 - 直接插入排序
直接插入排序算法代码理解测试代码运行结果复杂度参考资料算法直接插入排序(Straight Insertion Sort)的基本操作:将一个记录插入到已经排好序的有序表中,从而得到一个新的、记录数增1的有序表。注意:在我们的排序问题中,通常将 数据元素 称为 记录。代码理解测试代码运行结果复杂度参考资料【1】程杰. 大话数据结构. 北京:清华大学出版社,2011:2....原创 2021-03-13 10:26:32 · 566 阅读 · 0 评论 -
排序 - 简单选择排序
简单选择排序算法代码理解复杂度分析参考资料算法简单选择排序法(Simple Selection Sort)就是通过n - i次关键字间的比较,从 n - i + 1个记录中选出关键字最小的记录,并和第 i (1 <= i <= n)个记录交换。代码// 对顺序表 L 作简单选择排序void SelectSort(PSqlist L){ int i, j, min; for (i = 1; i < L->length; i++) { // 将当前下标定义为最小值下原创 2021-03-10 22:13:11 · 529 阅读 · 0 评论 -
排序 - 冒泡排序
冒泡排序描述冒泡排序是比较简单的排序,首先,顾名思义,“冒泡”意味着你想要的数据像泡泡一样咕嘟咕嘟冒出来,并且,在冒出水面的过程中,泡泡是逐渐浮到水面的。这也就意味着,该数据走过了全部数据长度的距离,那,它代表了这个排序算法的时间复杂度肯定比较大,但是胜在稳定。理解假设有 n 个数据要进行排序;那么我们就需要进行 n-1 趟排序; 例如:我们对 6 个数据进行排序:第一趟:将最大的值冒出来:(n = 6)5与6相比,<,不变;6与8相比,<,不变;8与2相比,>原创 2020-09-13 22:29:01 · 112 阅读 · 0 评论