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