常见的排序算法二——希尔排序
2023-09-14 08:57:16 时间
原理:被称为增量缩小排序。先将序列按增量划分为元素个数相同的若干组,
使用直接插入排序法进行排序,然后不断缩小增量直至为1,
最后使用直接插入排序完成排序。
要点:增量的选择以及排序最终以1为增量进行排序结束。
实现:
Void shellSort(Node L[],int d)
{
While(d =1)//直到增量缩小为1
{
Shell(L,d);
d=d/2;//缩小增量
}
}
Void Shell(Node L[],int d)
{
Int i,j;
For(i=d+1;i length;i++)
{
if(L[i] L[i-d])
{
L[0]=L[i];
j=i-d;
While(j 0 L[j] L[0])
{
L[j+d]=L[j];//移动
j=j-d;//查找
}
L[j+d]=L[0];
}
}
}
这个希尔排序的算法 算法的复杂度是O(n2)
常见排序算法之插入排序——直接插入排序、希尔排序 哈喽大家好,我是保护小周ღ,本期为大家带来的是常见排序算法中的插入排序,主要有直接插入排序以及它的升级版——希尔排序,包您一看就会,快来试试吧~
相关文章
- 常见的排序算法四——直接选择排序
- 内部排序算法:基数排序
- 数据结构常见的八大排序算法
- Java实现蓝桥杯VIP算法训练 自行车停放
- Java实现 蓝桥杯VIP 算法训练 快速排序
- 八大排序算法的 Python 实现
- 10大经典排序算法动图演示,看这篇就够了!(配相应代码)
- 深入浅出交换类排序算法
- 排序算法
- 各种排序算法的时间复杂度和空间复杂度(阿里)
- ML之R:通过数据预处理利用LiR/XGBoost等(特征重要性/交叉训练曲线可视化/线性和非线性算法对比/三种模型调参/三种模型融合)实现二手汽车产品交易价格回归预测之详细攻略
- 多目标灰太狼算法求解环境经济调度问题(IEEE30)(Matlab实现)
- Java中常见的排序算法
- 455. 分发饼干-排序加贪心算法
- 002-排序算法-快速排序
- 八大排序算法总结
- 白话经典算法系列之五 归并排序的实现
- 摆动排序 · Wiggle Sort 算法编程-数学归纳法和quick select的使用
- 基于深度学习的恶意样本行为检测(含源码) ----采用CNN深度学习算法对Cuckoo沙箱的动态行为日志进行检测和分类
- 数据结构与算法_13 _ 线性排序:如何根据年龄给100万用户数据排序
- 04、算法系类,快速排序代码实现 + 讲解
- 数据结构与算法之希尔排序
- 数据结构与算法之快速排序
- ctpn算法是机器学习吗?什么是CTPN算法?
- DSA之十大排序算法第三种:Straight Insertion Sort