带你读《图解算法小抄》十四、排序(22)

简介: 带你读《图解算法小抄》十四、排序(22)

带你读《图解算法小抄》十四、排序(21)https://developer.aliyun.com/article/1348129?groupCode=tech_library


2复杂度

名称

最佳情况

平均情况

最坏情况

内存

稳定性

备注

计数排序

n + r

n + r

n + r

n + r

r - 数组中的最大数

3参考资料

  • 维基百科
  • YouTube
  • EfficientAlgorithms

10.希尔排序

希尔排序(Shellsort),也被称为 Shell 排序或 Shell 方法,是一种原地比较排序算法。它可以看作是交换排序(冒泡排序)或插入排序的推广。该方法从远离彼此的元素开始,对它们进行排序,然后逐渐减小要比较的元素之间的间隔。从远离彼此的元素开始,它可以更快地将一些错位的元素移动到正确的位置,而不只是简单地与最近的邻居交换。

 

image.png

1希尔排序的工作原理

为了方便理解,我们以间隔为4的情况作为示例。将所有间隔为4位置的值组成一个虚拟子列表。这些值是 {35, 14}, {33, 19}, {42, 27} {10, 44}

 

我们比较每个子列表中的值,并在原始数组中进行交换(如果需要)。经过这一步,新数组应该如下所示:

 

然后,我们以间隔2进行排序,这个间隔会生成两个子列表:{14, 27, 35, 42} {19, 10, 33, 44}

 

我们在原始数组中比较并交换值(如果需要)。经过这一步,数组应该如下所示:

更新:下面的图片中存在一个错误,结果数组应该是 [14, 10, 27, 19, 35, 33, 42, 44]

 

带你读《图解算法小抄》十四、排序(23)https://developer.aliyun.com/article/1348127?groupCode=tech_library

相关文章
|
6月前
|
机器学习/深度学习 算法 安全
【无人机三维路径规划】基于非支配排序的鲸鱼优化算法NSWOA与多目标螳螂搜索算法MOMSA求解无人机三维路径规划研究(Matlab代码实现)
【无人机三维路径规划】基于非支配排序的鲸鱼优化算法NSWOA与多目标螳螂搜索算法MOMSA求解无人机三维路径规划研究(Matlab代码实现)
343 5
|
6月前
|
机器学习/深度学习 运维 算法
基于非支配排序遗传算法NSGAII的综合能源优化调度(Matlab代码实现)
基于非支配排序遗传算法NSGAII的综合能源优化调度(Matlab代码实现)
355 0
基于非支配排序遗传算法NSGAII的综合能源优化调度(Matlab代码实现)
|
7月前
|
机器学习/深度学习 算法 安全
【无人机3D路径规划】基于非支配排序遗传算法NSGAII的无人机3D路径规划研究(Matlab代码实现)
【无人机3D路径规划】基于非支配排序遗传算法NSGAII的无人机3D路径规划研究(Matlab代码实现)
290 1
|
6月前
|
机器学习/深度学习 算法 安全
【无人机三维路径规划】多目标螳螂搜索算法MOMSA与非支配排序的鲸鱼优化算法NSWOA求解无人机三维路径规划研究(Matlab代码实现)
【无人机三维路径规划】多目标螳螂搜索算法MOMSA与非支配排序的鲸鱼优化算法NSWOA求解无人机三维路径规划研究(Matlab代码实现)
242 0
|
6月前
|
机器学习/深度学习 算法 安全
【微电网】【创新点】基于非支配排序的蜣螂优化算法NSDBO求解微电网多目标优化调度研究(Matlab代码实现)
【微电网】【创新点】基于非支配排序的蜣螂优化算法NSDBO求解微电网多目标优化调度研究(Matlab代码实现)
206 0
|
7月前
|
机器学习/深度学习 算法 安全
【优化调度】基于matlab非支配排序遗传算法求解车辆充电调度优化问题研究(Matlab代码实现)
【优化调度】基于matlab非支配排序遗传算法求解车辆充电调度优化问题研究(Matlab代码实现)
151 0
|
6月前
|
存储 算法 搜索推荐
软考算法破壁战:从二分查找到堆排序,九大排序核心速通指南
专攻软考高频算法,深度解析二分查找、堆排序、快速排序核心技巧,对比九大排序算法,配套动画与真题,7天掌握45%分值模块。
289 1
软考算法破壁战:从二分查找到堆排序,九大排序核心速通指南
|
6月前
|
供应链 算法 Java
【柔性作业车间调度问题FJSP】基于非支配排序的多目标小龙虾优化算法求解柔性作业车间调度问题FJSP研究(Matlab代码实现)
【柔性作业车间调度问题FJSP】基于非支配排序的多目标小龙虾优化算法求解柔性作业车间调度问题FJSP研究(Matlab代码实现)
243 1
|
7月前
|
传感器 并行计算 算法
【无人机编队】基于非支配排序遗传算法II NSGA-II高效可行的无人机离线集群仿真研究(Matlab代码实现)
【无人机编队】基于非支配排序遗传算法II NSGA-II高效可行的无人机离线集群仿真研究(Matlab代码实现)
506 3
|
6月前
|
机器学习/深度学习 算法 安全
【无人机三维路径规划】基于非支配排序的鱼鹰优化算法NSOOA求解无人机三维路径规划研究(Matlab代码实现)
【无人机三维路径规划】基于非支配排序的鱼鹰优化算法NSOOA求解无人机三维路径规划研究(Matlab代码实现)
154 0