排序算法
LuckyWenjx
这个作者很懒,什么都没留下…
展开
-
冒泡排序(bubbleSort)
冒泡排序的原理(过程) 冒泡排序的过程其实就像它的名字一样像是冒泡泡的过程,比较相邻的元素。如果第一个比第二个大,就交换他们两个。 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。 针对所有的元素重复以上的步骤,除了最后一个。 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。 动图演示 代码 python实现 def bubb...原创 2019-03-24 21:09:00 · 148 阅读 · 0 评论 -
选择排序(selection_sort)
选择排序原理(过程) 选择排序和冒泡排序一样都是O(n2)的排序方式,所谓选择排序就是第一次从一组数据中选择最小的数放在第一位,再从剩下的数中选择最小的一位放入第二位,一直重复此操作即可。 动图演示 此图片来自菜鸟 代码 python实现 def selection_sort(arr): for i in range(len(arr)): # 记录最小值下标 m...原创 2019-03-24 22:40:00 · 177 阅读 · 0 评论 -
插入排序(insertion_sort)
插入排序的原理(过程) 插入排序也是一个O(n2)的排序方式,其过程如图 动图演示 此图来自菜鸟 代码 python实现 def insertion_sort(arr): for i in range(len(arr)): preIndex = i - 1 current = arr[i] while preIndex >= 0 an...原创 2019-03-25 10:44:24 · 166 阅读 · 0 评论 -
希尔排序(shell_sort)
希尔排序实现过程及其原理 希尔排序其实就是插入排序的一种升级版,希尔排序将数据按步长(gap)来分组,分别对每一组数据都使用插入排序,接着减小步长继续分组继续排序知道步长为1时就排好续了。 例如:{10, 21 ,56, 31, 14, 78, 13, 12} 此组数据有8个元素,那我假定步长为4 = 8 / 2 步长为4时: {10, 14}, {21, 78}, {56, 13}, {31,...原创 2019-03-26 16:52:16 · 126 阅读 · 0 评论