![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
辣鸡翅17
Coding for Truth
展开
-
算法学习(二) | 直接插入排序
介绍 插入排序是基于比较的排序,所谓的基于比较,就是通过比较数组中的元素,看谁大谁小,根据结果来调整元素的位置。因此,对于这类排序,就有两种基本的操作: 比较操作 交换操作 其中,对于交换操作,可以优化成移动操作,即不直接进行两个元素的交换,而是用一个元素(tmp)将当前元素先保存起来,然后执行移动操作,待确定了最终位置后,再将当前元素放入合适的位置。(下面的插入排序就用到了这个技巧)–因为,...原创 2018-11-27 00:48:34 · 157 阅读 · 0 评论 -
算法学习(三) | 选择排序
介绍 选择排序的基本思想就是,在未排序的数组中,选择最小的元素和最左的元素交换,之后在剩下的元素中选择最小的元素,与从左往右的第二个元素进行交换,以此类推,直至元素最后一个元素 选择排序的运行时间与输入无关,无论输入如何,都需要经过O(n2)O(n^2)O(n2)的时间复杂度 特性 稳定性 时间复杂度(平均) 时间复杂度(最坏) 时间复杂度(最好) 备注 不稳定 O(n2)O(n^...原创 2018-11-27 00:49:23 · 101 阅读 · 0 评论 -
算法学习(一)| 冒泡排序
介绍 冒泡排序的思想就是:循环遍历数组,两两比较元素的大小,当发现它们的排序与排序要求相反时,则将他们互换;每一次遍历,都有一个最大的数排在未排序的数的最右端,就像气泡,从最左边一次次比较到达最右边冒出来,故称为“冒泡排序”。 特性 稳定性 时间复杂度(平均) 时间复杂度(最坏) 时间复杂度(最好) 备注 稳定 O(n2)O(n^2)O(n2) O(n2)O(n^2)O(n2) O...原创 2018-11-25 00:33:08 · 156 阅读 · 0 评论 -
算法学习(四) | 堆排序
文章目录1.介绍2.堆的算法2.1 由下至上的堆有序化(上浮)2.2 由上至下的堆有序化(下沉)2.3 向堆中插入元素2.4 从堆中删除最大元素3.堆排序特性4.堆排序算法分析5.全部代码如下 1.介绍 “堆排序”是一种选择排序,顾名思义,它是一种基于 堆 这一数据结构的一种有效的排序算法。 堆(以“最大堆”为例)中,每个节点的值 大于 其左右孩子节点的值,所以它的根结点是整个堆中最大的节点,如下...原创 2018-11-30 17:18:21 · 218 阅读 · 0 评论