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

 更新时间:2017年11月23日 10:04:15   作者:Alex Yu  
这篇文章主要介绍了Python实现希尔排序算法,简单讲述了希尔排序的原理并结合具体实例形式分析了Python希尔排序的具体实现方法与使用技巧,需要的朋友可以参考下

本文实例讲述了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程序设计有所帮助。

相关文章

  • Windows环境下如何使用Pycharm运行sh文件

    Windows环境下如何使用Pycharm运行sh文件

    这篇文章主要介绍了Windows环境下如何使用Pycharm运行sh文件,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-02-02
  • python中列表的切片与修改知识点总结

    python中列表的切片与修改知识点总结

    在本篇文章里小编给大家分享了关于python中列表的切片与修改的相关知识点内容,需要的朋友们学习下。
    2019-07-07
  • python算法加密 pyarmor与docker

    python算法加密 pyarmor与docker

    这篇文章主要介绍了python算法加密 pyarmor与docker,,PyArmor 是一个用于加密和保护 Python 脚本的工具。它能够在运行时刻保护 Python脚本的二进制代码不被泄露,设置加密后Python源代码的有效期限,绑 定加密后的Python源代码到硬盘、网卡等硬件设备
    2022-06-06
  • python查看模块安装位置的方法

    python查看模块安装位置的方法

    今天小编就为大家分享一篇python查看模块安装位置的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-10-10
  • Python爬虫突破反爬虫机制知识点总结

    Python爬虫突破反爬虫机制知识点总结

    在本篇文章里小编给大家整理了一篇关于Python爬虫突破反爬虫机制知识点总结内容,有需要的朋友们可以跟着学习下。
    2021-11-11
  • 用python爬取分析淘宝商品信息详解技术篇

    用python爬取分析淘宝商品信息详解技术篇

    这篇文章主要介绍了用python爬取分析淘宝商品信息的技术,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-08-08
  • Python获取DLL和EXE文件版本号的方法

    Python获取DLL和EXE文件版本号的方法

    这篇文章主要介绍了Python获取DLL和EXE文件版本号的方法,实例分析了Python获取系统文件信息的技巧,需要的朋友可以参考下
    2015-03-03
  • python的json中方法及jsonpath模块用法分析

    python的json中方法及jsonpath模块用法分析

    这篇文章主要介绍了python的json中方法及jsonpath模块用法,结合实例形式分析了Python json相关模块与常见方法使用技巧,需要的朋友可以参考下
    2019-12-12
  • 用pytorch的nn.Module构造简单全链接层实例

    用pytorch的nn.Module构造简单全链接层实例

    今天小编就为大家分享一篇用pytorch的nn.Module构造简单全链接层实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-01-01
  • Python GUI布局尺寸适配方法

    Python GUI布局尺寸适配方法

    今天小编就为大家分享一篇Python GUI布局尺寸适配方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-10-10

最新评论