希尔排序

简介: 希尔排序。

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

希尔排序是基于插入排序的以下两点性质而提出改进方法的:
插入排序在对几乎已经排好序的数据操作时,效率高,即可以达到线性排序的效率
但插入排序一般来说是低效的,因为插入排序每次只能将数据移动一位。
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;
}
}

相关文章
|
9月前
|
编解码 人工智能 安全
【01】AE特效开发制作特技-Adobe After Effects-AE特效制作快速入门-制作飞机,子弹,爆炸特效以及导出png序列图-优雅草央千澈
【01】AE特效开发制作特技-Adobe After Effects-AE特效制作快速入门-制作飞机,子弹,爆炸特效以及导出png序列图-优雅草央千澈
222 20
【01】AE特效开发制作特技-Adobe After Effects-AE特效制作快速入门-制作飞机,子弹,爆炸特效以及导出png序列图-优雅草央千澈
|
安全 开发工具 git
coding上创建项目、创建代码仓库、将IDEA中的代码提交到coding上的代码仓库、Git的下载、IDEA上配置git
这篇文章是关于如何在IDEA中配置Git、在Coding.net上创建项目和代码仓库,并将IDEA中的代码提交到远程代码仓库的详细教程,涵盖了Git安装、IDEA配置、项目创建、代码提交等步骤。
coding上创建项目、创建代码仓库、将IDEA中的代码提交到coding上的代码仓库、Git的下载、IDEA上配置git
|
Web App开发 存储 Linux
探索openKylin:中国首个独立开源桌面操作系统
探索openKylin:中国首个独立开源桌面操作系统
599 0
探索openKylin:中国首个独立开源桌面操作系统
详细解读AnyCAD应用——修改指定点,线,面的坐标实现物体移动
详细解读AnyCAD应用——修改指定点,线,面的坐标实现物体移动
235 5
|
人工智能 算法 安全
【2023 年第十三届 MathorCup 高校数学建模挑战赛】C 题 电商物流网络包裹应急调运与结构优化问题 赛后总结之31页论文及代码
本文总结了2023年第十三届MathorCup高校数学建模挑战赛C题的解题过程,详细阐述了电商物流网络在面临突发事件时的包裹应急调运与结构优化问题,提出了基于时间序列预测、多目标优化、遗传算法和重要性评价模型的综合解决方案,并提供了相应的31页论文和代码实现。
282 0
|
存储 JavaScript 前端开发
DOM 型 XSS 演示(附链接)
DOM 型 XSS 演示(附链接)
|
存储 小程序
云开发(微信-小程序)笔记(六)----云函数,就这(下)
云开发(微信-小程序)笔记(六)----云函数,就这(下)
574 0
云开发(微信-小程序)笔记(六)----云函数,就这(下)
|
SQL 关系型数据库 MySQL
MySQL8.0.26—Linux版安装详细教程
MySQL8.0.26—Linux版安装详细教程
2789 1
MySQL8.0.26—Linux版安装详细教程
C#编程学习21:修改excel的数据项
C#编程学习21:修改excel的数据项
C#编程学习21:修改excel的数据项