希尔排序

简介: 希尔排序。

希尔排序,也称递减增量排序算法,是插入排序的一种更高效的改进版本。希尔排序是非稳定排序算法。

希尔排序是基于插入排序的以下两点性质而提出改进方法的:
插入排序在对几乎已经排好序的数据操作时,效率高,即可以达到线性排序的效率
但插入排序一般来说是低效的,因为插入排序每次只能将数据移动一位。
void shell_sort(int arr[], int len) {
int gap, i, j;
int temp;
for (gap = len >> 1; gap > 0; gap = gap >> 1)
for (i = gap; i < len; i++) {
temp = arr[i];
for (j = i - gap; j >= 0 && arr[j] > temp; j -= gap)
arr[j + gap] = arr[j];
arr[j + gap] = temp;
}
}

相关文章
希尔排序是什么
希尔排序:外套一层间隔逐步缩小的循环的插入排序
|
5月前
直接插入排序与希尔排序
直接插入排序与希尔排序
38 2
|
5月前
|
搜索推荐 Shell C++
C++希尔排序的实现
C++希尔排序的实现
|
5月前
|
存储 搜索推荐 算法
插入排序(一)——直接插入排序与希尔排序
插入排序(一)——直接插入排序与希尔排序
43 1
|
5月前
|
搜索推荐
直接插入排序和希尔排序
直接插入排序和希尔排序
58 0
|
11月前
|
算法 搜索推荐 Shell
18 希尔排序
18 希尔排序
25 0
|
12月前
插入排序与希尔排序
插入排序与希尔排序
45 0
|
搜索推荐 测试技术 C++
【插入排序】直接插入排序 与 希尔排序
【插入排序】直接插入排序 与 希尔排序
|
搜索推荐 算法 C#
C#——希尔排序
C#——希尔排序
83 0