Python|插入排序之希尔排序

Posted 算法与编程之美

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python|插入排序之希尔排序相关的知识,希望对你有一定的参考价值。

本文首发于微信公众号:"算法与编程之美",欢迎关注,及时了解更多此系列文章。

引言

希尔排序(Shell's Sort)是插入排序的一种又称“缩小增量排序”,是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。

问题描述

希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减至 1 时,整个文件恰被分成一组,算法便终止。

那具体是如何实现排序的呢?

算法描述

下面小编将用一个实例来描述

第一次排序:

   设gap1=N/2=5,即相隔距离为5的元素组成一组,可以分为5组。接下来,按照直接插入排序的方法对每个组进行排序。

第二次排序:

   将上次的gap缩小一半,即gap2=gap1/2=2(取整数)。这样每相隔距离为2的元素组成一组,可以分为2组。按照直接插入排序的方法对每个组进行排序。

第三次排序:s

   再次把gap缩小一半,即gap3=gap2/2=1。这样相隔距离为1的元素组成一组,即只有一组。按照直接插入排序的方法对每个组进行排序。此时,排序已经结束。

结语

通过实例对希尔排序的运用,详细的了解了希尔排序中主要是分成若干子序列,再分别进行直接插入排序。排序在学习算法的过程中是必不可少的,之后会继续学习交换排序。

主编:欧洋

稿件来源:深度学习与文旅应用实验室(DLETA)

以上是关于Python|插入排序之希尔排序的主要内容,如果未能解决你的问题,请参考以下文章

希尔排序之python

十大经典排序之:插入排序 |希尔排序

java排序之插入排序(直接插入排序和希尔排序)

排序算法之插入排序(直接插入排序折半插入排序希尔排序)

算法3 七大排序之:直接插入排序和希尔排序

排序算法之插入排序(直接插入希尔排序)