iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python实现希尔排序算法的原理与用法实例分析
  • 434
分享到

Python实现希尔排序算法的原理与用法实例分析

希尔算法实例 2022-06-04 19:06:43 434人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

本文实例讲述了python实现希尔排序算法的原理与用法。分享给大家供大家参考,具体如下: 希尔排序(shell Sort)是插入排序的一种。也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本。 希尔

本文实例讲述了python实现希尔排序算法的原理与用法。分享给大家供大家参考,具体如下:

希尔排序(shell Sort)是插入排序的一种。也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本。

希尔排序的基本思想是:先将整个待排元素序列分割成若干个子序列(由相隔某个“增量”的元素组成的)分别进行直接插入排序,然后依次缩减增量再进行排序,待整个序列中的元素基本有序(增量足够小)时,再对全体元素进行一次直接插入排序。因为直接插入排序在元素基本有序的情况下(接近最好情况),效率是很高的,因此希尔排序在时间效率上比前两种方法有较大提高。(插入排序可参考前面一篇Python插入排序算法)

Python实现代码如下:


#-*- coding: UTF-8 -*-
import numpy as np
def ShellSort(a):
  gap = a.size / 2
  while gap >= 1:
    for i in xrange(gap,a.size, gap):
      for j in xrange(i,0, -gap):
        if a[j-gap] > a[j]:
          a[j-gap] , a[j] = a[j], a[j-gap]
        else:
          break
    gap /= 2
if __name__ == '__main__':
  a = np.random.randint(0, 10, size = 10)
  print "Before sorting..."
  print "---------------------------------------------------------------"
  print a
  print "---------------------------------------------------------------"
  ShellSort(a)
  print "After sorting..."
  print "---------------------------------------------------------------"
  print a
  print "---------------------------------------------------------------"

运行结果:

查看图片

更多关于Python相关内容感兴趣的读者可查看本站专题:《Python数据结构与算法教程》、《Python加密解密算法与技巧总结》、《Python编码操作技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程》

希望本文所述对大家Python程序设计有所帮助。

--结束END--

本文标题: Python实现希尔排序算法的原理与用法实例分析

本文链接: https://www.lsjlt.com/news/15930.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python实现希尔排序算法的原理与用法实例分析
    本文实例讲述了Python实现希尔排序算法的原理与用法。分享给大家供大家参考,具体如下: 希尔排序(Shell Sort)是插入排序的一种。也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本。 希尔...
    99+
    2022-06-04
    希尔 算法 实例
  • C++实现希尔排序算法实例
    目录1.代码模板2.算法介绍3.实例1.代码模板 // 希尔排序(Shell Sort) void ShellSort(SqList *L) { int i, j; ...
    99+
    2022-11-12
  • Python实现的堆排序算法原理与用法实例分析
    本文实例讲述了Python实现的堆排序算法。分享给大家供大家参考,具体如下: 堆排序(Heapsort)是指利用堆这种数据结构所设计的一种排序算法。堆是一个近似完全二叉树的结构,并同时满足堆性质:即子结点的...
    99+
    2022-06-04
    算法 实例 原理
  • 图解Java经典算法希尔排序的原理与实现
    目录希尔排序算法思想图解代码实现(Java)希尔排序 希尔排序时插入排序的一种,也称缩小增量排序,是直接插入排序的一种更高效的改进版本。希尔排序是非稳定排序算法。 算法思想 希尔排序...
    99+
    2022-11-13
  • Python实现的选择排序算法原理与用法实例分析
    本文实例讲述了Python实现的选择排序算法。分享给大家供大家参考,具体如下: 选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的...
    99+
    2022-06-04
    算法 实例 原理
  • Python实现的插入排序算法原理与用法实例分析
    本文实例讲述了Python实现的插入排序算法原理与用法。分享给大家供大家参考,具体如下: 插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数...
    99+
    2022-06-04
    算法 实例 原理
  • Python实现的基数排序算法原理与用法实例分析
    本文实例讲述了Python实现的基数排序算法。分享给大家供大家参考,具体如下: 基数排序(radix sort)属于“分配式排序”(distribution sort),又称“桶子法”(bucket sor...
    99+
    2022-06-04
    基数 算法 实例
  • 图解Java经典算法冒泡选择插入希尔排序的原理与实现
    目录一、冒泡排序1、基本介绍2、代码实现二、 选择排序1、基本介绍2、代码实现三、插入排序1、基本介绍2、代码实现四、希尔排序1、基本介绍2、代码实现(交换排序)3、代码实现(移位排...
    99+
    2022-11-13
  • Java中插入排序算法之希尔排序+直接插入排序的示例分析
    这篇文章给大家分享的是有关Java中插入排序算法之希尔排序+直接插入排序的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。希尔排序在介绍希尔排序之前,先了解一下直接插入排序一、直接插入排序1. 单趟排序x插...
    99+
    2023-06-25
  • java 中基本算法之希尔排序的实例详解
    java 中基本算法之希尔排序的实例详解希尔排序(Shell Sort)是插入排序的一种。也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。该方法因DL.Shell于1959年提出而得名。希尔排序是把记录...
    99+
    2023-05-31
    java 希尔排序 ava
  • 怎么利用Java实现一个希尔排序算法
    这期内容当中小编将会给大家带来有关怎么利用Java实现一个希尔排序算法,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Java 实现希尔排序Java代码    pub...
    99+
    2023-05-31
    java ava 希尔排序
  • C++深入浅出讲解希尔排序算法的实现
    目录希尔排序1.基本思想预排序2.算法实现3.时间复杂度插入排序分为两种:直接插入排序&希尔排序 希尔排序 1.基本思想 希尔排序是在直接插入排序基础上的优化,属于非常牛掰的...
    99+
    2022-11-13
  • python查找与排序算法实例代码分析
    查找二分查找二分搜索是一种在有序数组中查找某一特定元素的搜索算法。搜索过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜索过程结束;如果某一特定元素大于或者小于中间元素,则在数组大于或小于中间元素的那一半中查找,而且跟开始一样从...
    99+
    2023-05-17
    Python
  • Python快速排序算法实例分析
    本文实例讲述了Python快速排序算法。分享给大家供大家参考,具体如下: 快速排序的时间复杂度是O(NlogN) 算法描述: ① 先从序列中取出一个数作为基准数 ② 分区过程, 将比这个数大的数全部放到它的...
    99+
    2022-06-04
    算法 实例 快速
  • 利用Java实现一个希尔排序的方法
    利用Java实现一个希尔排序的方法?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。一、希尔排序(Shell Sort)希尔排序(Shell Sort)是一种插入排序算法,因D...
    99+
    2023-05-31
    java 希尔排序 ava
  • Java的Arrays.sort()方法排序算法实例分析
      暂时网上看过很多JDK8中Arrays.sort的底层原理,有些说是插入排序,有些说是归并排序,也有说大于域值用计数排序法,否则就使用插入排序。。。其实不全对。让我们分析个究竟:...
    99+
    2022-11-13
  • python常用的各种排序算法原理与实现方法小结
    1. 冒泡排序(Bubble Sort) 基本思想:重复地遍历待排序的数列,每次比较相邻的两个元素,如果它们的顺序错误就交换位置,直到没有需要交换的元素为止。 实现代码: def b...
    99+
    2023-05-17
    python 排序算法
  • Python实现冒泡排序算法的示例解析
    目录1. 算法描述2. 算法分析3. 动图展示4. 代码实现5. 算法升级6. 时间复杂度分析1. 算法描述 冒泡排序(Bubble Sort)是一种简单的排序算法。它重复地遍历要排...
    99+
    2022-11-11
  • C语言实现各种排序算法实例代码(选择,冒泡,插入,归并,希尔,快排,堆排序,计数)
    目录前言 选择排序 冒泡排序 插入排序 归并排序 希尔排序 快速排序 堆排序 计数排序 总结前言 平时用惯了高级语言高级工具高级算法,难免对一些基础算法感到生疏。但最基础的排序算法...
    99+
    2022-11-12
  • Python实现的桶排序算法示例
    本文实例讲述了Python实现的桶排序算法。分享给大家供大家参考,具体如下: 桶排序也叫计数排序,简单来说,就是将数据集里面所有元素按顺序列举出来,然后统计元素出现的次数。最后按顺序输出数据集里面的元素。 ...
    99+
    2022-06-04
    示例 算法 Python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作