希尔排序的介绍与分析
来源:互联网 发布:vscode c 开发环境 编辑:程序博客网 时间:2024/06/05 19:29
希尔排序跟直接插入排序很像,相当于每次把数列分成若干个区间进行直接插入排序
void shell_sort(int* a, int n){int gap = n / 2; //gap分割待排序的序列,开始等于数组大小的一半,然后每次除以二,如果gap一直是1就相当于直接插入排序了while (gap != 0){for (int i = gap; i < n; ++i) //对所有相隔gap位置的元素进行直接插入排序{int j = i - gap;int temp = a[i];while (j >= 0 && a[j] > temp){a[j + gap] = a[j];j = j - gap;}a[j + gap] = temp;}gap = gap / 2; //每次减半,当gap == 1时相当于序列所有值进行直接插入排序}}
由于希尔排序的gap选择不一定,导致其时间复杂度比较难分析
一般取时间复杂度:O(n^(1.3))
空间复杂度:O(1)
阅读全文
0 0
- 希尔排序的介绍与分析
- 介绍希尔排序的实现
- 希尔排序实现与复杂度、稳定性分析
- Shell(希尔)排序的分析和比较
- 排序算法—希尔排序算法分析与实现(Python)
- 希尔排序算法分析
- 希尔排序及其分析
- 希尔排序的算法思想与实现
- (数据结构与算法分析 八)------插入排序,希尔排序,归并排序的实现( Java语言描述)
- 希尔(shell)排序算法分析与代码实现
- 冒泡排序介绍与分析
- 快速排序介绍与分析
- 归并排序介绍与分析
- 排序 (插入排序,快速排序,希尔排序)数据结构与算法分析-C语言描述
- Python的列表介绍和冒泡,希尔排序算法例子
- 插入排序与希尔排序
- 插入排序与希尔排序
- 插入排序与希尔排序
- anaconda
- windows/vs如何获取程序内存使用量和时间花费
- 【LeetCode】496 Next Greater Element I
- Link16战术数据链的基础知识
- 记录一下matplotlib的使用。
- 希尔排序的介绍与分析
- BZOJ 1098: [POI2007]办公楼biu
- servlet
- 百度地图marke
- 二、基于Cortex-A8和ZigBee技术的智能家居监控系统的设计与实现
- Android图片处理框架之Picasso学习使用
- C# Post Json数据
- ptrace注入游戏介绍
- JSON