目录
前言
希尔排序Shell Sort,也被称作希尔的方法Shell's method.是一种就地比较排序。它可以被看作是通过交换(冒泡排序)或通过插入排序(插入排序)来进行排序的一种概括。该方法首先对彼此之间的元素进行排序,然后逐步减少元素之间的差距。从远的分离元素开始,它可以移动一些不在适当位置的元素,这比只是简单的交换相临近的元素更快。1959年,唐纳德 希尔发版了第一个版本。希尔排序的运行时间很大程度上依赖于它所使用的间隙序列。对于许多实用的变体,确定它们的时间复杂度仍然是一个开放的问题,存在不确定性。
希尔排序,也称递减增量排序算法,是插入排序的一种更高效的改进版本。但希尔排序是非稳定排序算法。
希尔排序是基于插入排序的以下两点性质而提出改进方法的:
-
插入排序在对几乎已经排好序的数据操作时,效率高,即可以达到线性排序的效率;
-
但插入排序一般来说是低效的,因为插入排序每次只能将数据移动一位;
几个相关概念
稳定