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 相关文章推荐
python返回昨天日期的方法
May 13 Python
Python中Django发送带图片和附件的邮件
Mar 31 Python
python使用KNN算法手写体识别
Feb 01 Python
让Django支持Sql Server作后端数据库的方法
May 29 Python
浅谈tensorflow中几个随机函数的用法
Jul 27 Python
python可视化篇之流式数据监控的实现
Aug 07 Python
python爬虫 批量下载zabbix文档代码实例
Aug 21 Python
python 三元运算符使用解析
Sep 16 Python
Python找出列表中出现次数最多的元素三种方式
Feb 24 Python
Django之富文本(获取内容,设置内容方式)
May 21 Python
详解python datetime模块
Aug 17 Python
重构Python代码的六个实例
Nov 25 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汉字转换拼音的函数代码
2015/12/30 PHP
Laravel中前端js上传图片到七牛云的示例代码
2017/09/04 PHP
jQuery对表单元素的取值和赋值操作代码
2011/05/19 Javascript
深入理解JavaScript系列(4) 立即调用的函数表达式
2012/01/15 Javascript
js登录弹出层特效
2014/03/07 Javascript
js给网页加上背景音乐及选择音效的方法
2015/03/03 Javascript
Vue数据双向绑定的深入探究
2018/11/27 Javascript
详解Vue项目中实现锚点定位
2019/04/24 Javascript
Vue编写可显示周和月模式的日历 Vue自定义日历内容的显示
2019/06/26 Javascript
微信小程序入口场景的问题集合与相关解决方法
2019/06/26 Javascript
js实现内置计时器
2019/12/16 Javascript
JavaScript 引用类型实例详解【数组、对象、严格模式等】
2020/05/13 Javascript
python 连接sqlite及简单操作
2017/06/30 Python
Python简单实现的代理服务器端口映射功能示例
2018/04/08 Python
对python 各种删除文件失败的处理方式分享
2018/04/24 Python
Django发送邮件和itsdangerous模块的配合使用解析
2019/08/10 Python
Python类反射机制使用实例解析
2019/12/30 Python
Python grpc超时机制代码示例
2020/09/14 Python
mac系统下安装pycharm、永久激活、中文汉化详细教程
2020/11/24 Python
使用CSS3来制作消息提醒框
2015/07/12 HTML / CSS
美国百货齐全的精品网站,提供美式风格的产品:Overstock.com
2016/07/22 全球购物
深深扎根运动世界的生活品牌:Tillys
2017/10/30 全球购物
Kneipp克奈圃美国官网:德国百年精油配方的传承
2018/02/07 全球购物
文明礼仪事迹材料
2014/01/09 职场文书
演讲稿开场白
2014/01/13 职场文书
《匆匆》教学反思
2014/02/22 职场文书
卫生院艾滋病宣传活动小结
2014/07/09 职场文书
优秀中职教师事迹材料
2014/08/26 职场文书
教师学习八项规定六项禁令思想汇报
2014/09/27 职场文书
2014年手术室工作总结
2014/11/26 职场文书
毕业答辩开场白范文
2015/05/27 职场文书
JavaScript中时间格式化新思路toLocaleString()
2021/11/07 Javascript
Python Flask搭建yolov3目标检测系统详解流程
2021/11/07 Python
企业版Windows 11有哪些新功能? Win11适用于企业的功能介绍
2021/11/21 数码科技
开机音效回归! Windows 11重新引入开机铃声
2021/11/21 数码科技
JAVA SpringMVC实现自定义拦截器
2022/03/16 Python