随笔分类 -  排序算法

算法中的排序算法
摘要:最近有个前端大神写错了快速排序,所以我这里记录一下 所谓的快速排序就是分治排序的分之中不断递归把数组分成大小两个部分,再继续分成大小两个部分 分的过程中完成整个数组的有序。 交换次数较多,迭代次数少,空间耗费少 代码如下 阅读全文
posted @ 2018-05-12 13:56 酒皇 阅读(157) 评论(0) 推荐(0)
摘要:归并排序遵循分治原则先将数组不断的递归二分打散,打散后再进行二二组合。原理如下数组:分[1,2,3,4,5,6,7,8] 分[1,2,3,4],[5,6,7,8] 分[1,2],[3,4],[5,6],[7,8] 分[1],[2],[3],[4],[5],[6],[7],[8] 治:[2,1],[4 阅读全文
posted @ 2017-12-21 09:12 酒皇 阅读(219) 评论(0) 推荐(0)
摘要:希尔排序是建立在插入排序上的优化 我们上一篇已经知道了插入排序在面对已经有序的情况下会更加快一些, 所以希尔排序的思想在于先让整体有序,然后再进行最后一次插入排序,让最后一次插入排序更加快。 我现在先举夸张例子 有一个数组:10,9,8,7,6,5,2,3,4,1,我们如果直接使用插入排序也可以,但 阅读全文
posted @ 2017-12-15 09:46 酒皇 阅读(857) 评论(0) 推荐(0)
摘要:插入排序是比选择排序更加优化的算法。 原理是把原数组分割成前后两部分,不断的把后面一部分提到前面来,然后进行排序: 原数组:9,8,7,6,5,4,3,2,1 第一轮:8,9,7,6,5,4,3,2,1 第二轮:7,8,9,6,5,4,3,2,1 第二轮:6,7,8,9,5,4,3,2,1 * * 阅读全文
posted @ 2017-12-12 09:44 酒皇 阅读(206) 评论(0) 推荐(0)
摘要:选择排序是排序方法中最简单效率最低的算法 该方法会遍历(N2)/2:每次抽一位最小数或者最大数放在数组头部。再遍历抽取剩下的数组最小数 如下所示: 原数组:9,8,7,6,5,4,3,2,1 第一轮:1,8,7,6,5,4,3,2,9 第二轮:1,2,7,6,5,4,3,8,9第三轮:1,2,3,6 阅读全文
posted @ 2017-12-11 17:15 酒皇 阅读(201) 评论(0) 推荐(0)