![](https://img-blog.csdnimg.cn/20190918140129601.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
算法
记录并解析常见算法
Sombra_Zhang
JAVA-web程序员
展开
-
排序算法(3)- 插入排序(Insertion Sort)
学习排序网站:https://www.toptal.com/developers/sorting-algorithms 本文排序方式以从小到大顺序为准原理循环地把元素插入到有序数组中。 当前元素前面的元素视为已排序元素,当前元素值存入临时变量;临时变量和前一个元素比较,如果小于前一个元素,则前一个元素后移一位;临时变量再和前面的元素比较,直到临时变量大于比较元素,把临时...原创 2018-05-02 16:36:19 · 359 阅读 · 0 评论 -
排序算法(4)- 桶排序(Bucket Sort)
学习排序网站:https://www.toptal.com/developers/sorting-algorithms 本文排序方式以从小到大顺序为准原理准备m个箱子(m为待排序数组的最大值+1),依次在下标为元素大小的箱子上做标记。最后根据有标记的箱子的下标和标记数量,从小到大放入数组中,得到排序完成的数组。复杂度空间复杂度: O(N+M) –M为桶的数量 ...原创 2018-05-03 18:31:00 · 212 阅读 · 0 评论 -
排序算法(2)-冒泡排序(Bubble Sort)
本文排序方式以从小到大顺序为准原理从数组第一位的元素开始,和第二位的元素比较,较大的元素放在第二位;然后第二位的元素再和第三位的元素比较,较大的元素放在第三位;……;重复执行,直到最后两位的元素比较交换完位置。重复上面动作,一轮冒泡后没有交换动作。复杂度空间复杂度: O(1) 时间复杂度: 最坏情况O(n^2),最优情况O(n)注意点终止条件: 因为冒...原创 2018-04-27 18:06:07 · 273 阅读 · 0 评论 -
排序算法(1)- 选择排序(Select Sort)
学习排序网站:https://www.toptal.com/developers/sorting-algorithms 本文排序方式以从小到大顺序为准原理选出最小值,和第一个未排序元素交换位置。重复执行,直到执行完n-1次,数组排序完成。复杂度时间复杂度:O(1) 空间复杂度:O(n^2)注意点不管什么情况,时间复杂度都是O(n^2),尽量不要...原创 2018-04-29 10:12:07 · 262 阅读 · 0 评论 -
排序算法(5)- 折半插入排序(Binary Insertion Sort)
学习排序网站:https://www.toptal.com/developers/sorting-algorithms 本文排序方式以从小到大顺序为准原理插入排序算法的优化算法排序算法是和已排序队列按顺序一一比较,然后交换位置,直到找出插入位置。折半插入排序算法是先适用折半查找找出插入位置,然后统一后移。注意点时间复杂度和排序完成度没有关系,和队列大小有关系...原创 2018-05-08 16:24:28 · 1081 阅读 · 0 评论 -
排序算法(6)- 希尔排序(Shell Sort)
学习排序网站:https://www.toptal.com/developers/sorting-algorithms 本文排序方式以从小到大顺序为准原理– 直接插入排序的优化算法 – 把数组按照下标的一定增量分组,对每组使用直接插入排序。随着增量逐渐减少,组中的元素越来越多,直到增量为1时,组里包含所有元素,排序完成则算法结算。注意点最小增量必须是1。因为...原创 2018-05-08 18:06:06 · 230 阅读 · 0 评论