目录
希尔排序的定义
![](https://file.jishuzhan.net/article/1705416666403311618/084e3d58352a490ba3a3acd98bd1336b.png)
![](https://file.jishuzhan.net/article/1705416666403311618/4383d80004fc45c883b9160a090499ec.png)
给一个序列进行希尔排序
![](https://file.jishuzhan.net/article/1705416666403311618/2c506b110649474e8c5166e256cc7b80.png)
第一趟d可以是元素个数/2
相距为4的子表
![](https://file.jishuzhan.net/article/1705416666403311618/c8b4dcdaf80c40adb4b5736c2ebf85d9.png)
对子表进行直接插入排序(由小到大)
![](https://file.jishuzhan.net/article/1705416666403311618/9eba93f216c244918710d818eb23bcc4.png)
得到结果是
![](https://file.jishuzhan.net/article/1705416666403311618/2d8f21ee9bb84f85be181648bb38041f.png)
第二趟相距为2的元素为一组
![](https://file.jishuzhan.net/article/1705416666403311618/7466ac1882b74f29ae04801d9ce0d4d1.png)
相距为2的子表
![](https://file.jishuzhan.net/article/1705416666403311618/02cda02d80a2453a8c474a1474f772f8.png)
对子表进行直接插入排序(由小到大)
![](https://file.jishuzhan.net/article/1705416666403311618/21b2e4f97409474fb6f27ed18a59e243.png)
第二趟得到结果是
![](https://file.jishuzhan.net/article/1705416666403311618/4b926cdc2a714727978de7ae9fedadd8.png)
第三趟d=1,相距为1的元素为子表,正好就是所有的元素,整个表已经呈现出"基本有序",对整体在进行一次"直接插入排序"
第三趟的子表
![](https://file.jishuzhan.net/article/1705416666403311618/3445a32ad35f403a9915e918f20cf2d8.png)
第三趟子表排序后的结果
![](https://file.jishuzhan.net/article/1705416666403311618/d2368134ef3d460587fdf5617bff1f8a.png)
希尔排序的算法实现
![](https://file.jishuzhan.net/article/1705416666403311618/bf47102733264607b3950562d19c6376.png)
算法性能分析
1.时间复杂度
![](https://file.jishuzhan.net/article/1705416666403311618/197726fa76084820a988ea39e303a048.png)
2.稳定性
不稳定
![](https://file.jishuzhan.net/article/1705416666403311618/be7fa5207832487ca2808dcf08cd9a88.png)
3.适用性
仅适合于顺序表,不适用于链表