希尔排序则是通过添加一个步长的概念,每次把当前元素与增加步长后的元素比较,如果交换则交换.然后再次增加步长去比较,这个过程与插入排序一样.希尔排序与插入排序的
区别在于希尔排序通过步长将数组划分为子数组,将子数组通过插入排序.而步长也要不断的递减,直到步长是1此时就退化为插入排序.
这个算法最好情况下时间复杂度:O(n)平均情况下时间复杂度:O((nlog(n))^2)
以下代码提供一个测试方法.
Original: https://www.cnblogs.com/zumengjie/p/16157441.html
Author: 顶风少年
Title: 数据结构与算法之希尔排序
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/588897/
转载文章受原作者版权保护。转载请注明原作者出处!