Python排序搜索基本算法之希尔排序实例分析


Posted in Python onDecember 09, 2017

本文实例讲述了Python排序搜索基本算法之希尔排序。分享给大家供大家参考,具体如下:

希尔排序是插入排序的扩展,通过允许非相邻的元素进行交换来提高执行效率。希尔排序最关键的是选择步长,本程序选用Knuth在1969年提出的步长序列:1 4 13 40 121 364 1093 3280 。。。后一个元素是前一个元素*3+1,非常方便选取,而且效率还不错。代码如下:

#-*- coding: UTF-8 -*-
def shellSort(seq):
  length=len(seq)
  inc=0
  while inc<=length/3:
    inc=inc*3+1
  print(inc)
  while inc>=1:
    for i in range(inc,length):
      tmp=seq[i]
      for j in range(i,0,-inc):
        if tmp<seq[j-inc]:
          seq[j]=seq[j-inc]
        else:
          j+=inc
          break
      seq[j-inc]=tmp
    inc//=3
if __name__=='__main__':
  print("三水点靠木测试结果:")
  seq=[8,6,4,9,7,3,2,-4,0,-100,99]
  shellSort(seq)
  print(seq)

运行结果:

Python排序搜索基本算法之希尔排序实例分析

Python 相关文章推荐
pyqt4教程之messagebox使用示例分享
Mar 07 Python
使用Python中的tkinter模块作图的方法
Feb 07 Python
Python 利用pydub库操作音频文件的方法
Jan 09 Python
python根据txt文本批量创建文件夹
Dec 08 Python
使用python 写一个静态服务(实战)
Jun 28 Python
Python实现微信机器人的方法
Sep 06 Python
tensorflow之并行读入数据详解
Feb 05 Python
Python使用Socket实现简单聊天程序
Feb 28 Python
python异常处理之try finally不报错的原因
May 18 Python
关于python的缩进规则的知识点详解
Jun 22 Python
python 贪心算法的实现
Sep 18 Python
Python import模块的缓存问题解决方案
Jun 02 Python
Python爬取当当、京东、亚马逊图书信息代码实例
Dec 09 #Python
python爬取亚马逊书籍信息代码分享
Dec 09 #Python
matplotlib在python上绘制3D散点图实例详解
Dec 09 #Python
K-近邻算法的python实现代码分享
Dec 09 #Python
Python数据可视化编程通过Matplotlib创建散点图代码示例
Dec 09 #Python
python学习之matplotlib绘制散点图实例
Dec 09 #Python
Python学习pygal绘制线图代码分享
Dec 09 #Python
You might like
php开发环境配置记录
2011/01/14 PHP
PHP安全上传图片的方法
2015/03/21 PHP
php中替换字符串函数strtr()和str_repalce()的用法与区别
2016/11/25 PHP
PHP常用正则表达式精选(推荐)
2019/05/28 PHP
用javascript实现读取txt文档的脚本
2007/07/20 Javascript
javascript 表单规则集合对象
2009/07/21 Javascript
锋利的jQuery jQuery中的DOM操作
2010/03/21 Javascript
jQuery 对Select的操作备忘记录
2011/07/04 Javascript
js onload处理html页面加载之后的事件
2013/10/30 Javascript
jQuery+AJAX实现网页无刷新上传
2015/02/22 Javascript
javascript作用域链(Scope Chain)用法实例解析
2015/11/30 Javascript
Bootstrap+jfinal实现省市级联下拉菜单
2016/05/30 Javascript
利用nodejs监控文件变化并使用sftp上传到服务器
2017/02/18 NodeJs
vue-cli2.x项目优化之引入本地静态库文件的方法
2018/06/19 Javascript
vue中element-ui表格缩略图悬浮放大功能的实例代码
2018/06/26 Javascript
React注册倒计时功能的实现
2018/09/06 Javascript
Vue.js实现可排序的表格组件功能示例
2019/02/19 Javascript
JavaScript实现好看的跟随彩色气泡效果
2020/02/06 Javascript
多种类型jQuery网页验证码插件代码实例
2021/01/09 jQuery
ES6的循环与可迭代对象示例详解
2021/01/31 Javascript
Python解释执行原理分析
2014/08/22 Python
Python随机生成彩票号码的方法
2015/03/05 Python
Python2.x版本中cmp()方法的使用教程
2015/05/14 Python
Python的Django框架中自定义模版标签的示例
2015/07/20 Python
Python的标准模块包json详解
2017/03/13 Python
tensorflow之获取tensor的shape作为max_pool的ksize实例
2020/01/04 Python
MATLAB数学建模之画图汇总
2020/07/16 Python
推荐一些比较有用的css3新属性
2014/11/11 HTML / CSS
新秀丽官方旗舰店:Samsonite拉杆箱、双肩包、皮具
2018/03/05 全球购物
Clarks其乐鞋荷兰官网:Clarks荷兰
2019/07/05 全球购物
教学质量评估实施方案
2014/03/17 职场文书
2015年党员干部承诺书
2015/01/21 职场文书
班主任自我评价范文
2015/03/11 职场文书
毕业生捐书活动倡议书
2015/04/27 职场文书
立春观后感
2015/06/18 职场文书
springboot利用redis、Redisson处理并发问题的操作
2021/06/18 Java/Android