您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

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

5b51 2022/1/14 8:16:01 python 字数 2965 阅读 323 来源 www.jb51.cc/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,-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函数使用技巧总结》、《@L_502_5@》及《Python入门与进阶经典教程

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

总结

以上是编程之家为你收集整理的Python实现希尔排序算法的原理与用法实例分析全部内容,希望文章能够帮你解决Python实现希尔排序算法的原理与用法实例分析所遇到的程序开发问题。


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶