插入排序与希尔排序算法
希尔算法:
先对列表分组,再对每组元素分别做插入排序。
元素分组是通过设置步长(gap,即组的数量)实现的。每一组元素内,相邻元素之间的距离(步长)固定。
类似将一把把小剑慢慢铸成一把大剑
插入排序与冒泡排序时间复杂度相同(O(n^2)),但执行速度快,是因为需要执行的代码行数少(寻找到插入位置前,插入排序每次判断仅移动一个元素,冒泡排序却需要更换两个元素的值。)。
希尔算法:
先对列表分组,再对每组元素分别做插入排序。
元素分组是通过设置步长(gap,即组的数量)实现的。每一组元素内,相邻元素之间的距离(步长)固定。
类似将一把把小剑慢慢铸成一把大剑
插入排序与冒泡排序时间复杂度相同(O(n^2)),但执行速度快,是因为需要执行的代码行数少(寻找到插入位置前,插入排序每次判断仅移动一个元素,冒泡排序却需要更换两个元素的值。)。