希尔排序 原创 排序算法 2021年7月16日 07:09 夏至未至 1385 当前内容 608 字,在路上,马上到,马上到 思想(见图):  等同于插入排序,不同的是,插入排序每次只间隔一个元素,而希尔排序间隔 gap个元素,最后一趟又是一边真正的插入排序(间隔一个): 代码: ```cpp #pragma once void ShellSort(int *a, int size) { assert(a); int gap = size; while (gap > 1) { gap = gap / 3 + 1; //一下都是插入排序的过程 int index = gap; int i = gap; while (index < size) { int tmp = a[index]; int end = index - gap; while (end >= 0 && tmp < a[end]) { a[end + gap] = a[end]; end -= gap; } a[end + gap] = tmp; index += gap; } } } ``` 本文标题: 希尔排序 本文作者: 夏至未至 发布时间: 2021年7月16日 07:09 最近更新: 2021年7月28日 07:02 原文链接: 许可协议: 署名-非商业性-禁止演绎 4.0 国际(CC BY-NC-ND 4.0) 请按协议转载并保留原文链接及作者 排序方法(4) 上一个 直接插入排序 下一个 浅显易懂的桶排序 当前文章评论暂未开放,请移步至留言处留言。