
排序算法
LuckyWenjx
这个作者很懒,什么都没留下…
展开
-
冒泡排序(bubbleSort)
冒泡排序的原理(过程)冒泡排序的过程其实就像它的名字一样像是冒泡泡的过程,比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。针对所有的元素重复以上的步骤,除了最后一个。持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。动图演示代码python实现def bubb...原创 2019-03-24 21:09:00 · 184 阅读 · 0 评论 -
选择排序(selection_sort)
选择排序原理(过程)选择排序和冒泡排序一样都是O(n2)的排序方式,所谓选择排序就是第一次从一组数据中选择最小的数放在第一位,再从剩下的数中选择最小的一位放入第二位,一直重复此操作即可。动图演示此图片来自菜鸟代码python实现def selection_sort(arr): for i in range(len(arr)): # 记录最小值下标 m...原创 2019-03-24 22:40:00 · 214 阅读 · 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 · 212 阅读 · 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 · 159 阅读 · 0 评论