希尔排序时间复杂度分析

排序算法时间复杂度,空间复杂度,稳定性比较1 。插入类排序直接插入排序 , -,直接选择排序是n次方时间复杂度,冒泡排序也是n次方时间复杂度,Express 排序,希尔 排序,merge 排序,都是n×(logn)时间复杂度 。

1、iOS/OC: 希尔 排序的理解希尔 排序(贝壳排序),我就知道是一个叫希尔排序的外国人发明的 。没错 , 他就是唐纳德希尔(DonaldShell),1959年发明算法希尔 排序的美国计算机科学家 。对于希尔 排序,官方的解释是这样的:希尔 排序,也是一种插入排序 。既然是其中之一,那他们的区别在哪里?Insert 排序最坏的情况,也就是整个数组逆序,此时复杂度达到O(n2) 。

什么增量?插入排序只能和相邻元素比较,而希尔 排序是跳转比较,增量就是步长 。例如,当增量为3时,下标为0的元素与下标为3的元素进行比较,3与6进行比较,1与4进行比较 , 4与7进行比较 。我想你一定做过一群人站成一排,一个一个数 , 叫一队,叫二队 。此时,增量为2 。所以你也可以理解为按增量分组,然后插入每一组排序 。
2、 希尔 排序是怎么排的呀??【希尔排序时间复杂度分析】希尔排序希尔排序(壳排序)是insert排序的一种 。以D.L.Shell于1959年提出的名称命名 , 希尔 排序基本思路基本思路:首先取一个小于n的整数d1作为第一个增量,将文件中的所有记录分成d1组 。距离是dl的倍数的所有记录都放在同一个组中,第一,直接插入每个群排序;然后,取第二个增量d2 。

    推荐阅读