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|插入排序之希尔排序的主要内容,如果未能解决你的问题,请参考以下文章