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实现忽略大小写对字符串列表排序的方法
Sep 25 Python
python超简单解决约瑟夫环问题
May 12 Python
Python中的默认参数详解
Jun 24 Python
Python环境下安装使用异步任务队列包Celery的基础教程
May 07 Python
利用Python yagmail三行代码实现发送邮件
May 11 Python
Python下调用Linux的Shell命令的方法
Jun 12 Python
浅谈Python中的可迭代对象、迭代器、For循环工作机制、生成器
Mar 11 Python
pip install python 快速安装模块的教程图解
Oct 08 Python
python对数组进行排序,并输出排序后对应的索引值方式
Feb 28 Python
用python实现名片管理系统
Jun 18 Python
Django利用AJAX技术实现博文实时搜索
May 06 Python
pytorch 中autograd.grad()函数的用法说明
May 12 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
肝肠寸断了解下!盘点史上最伤心的十大动漫
2020/03/04 日漫
php源码加密 仿微盾PHP加密专家(PHPCodeLock)
2010/05/06 PHP
PHP面向对象分析设计的61条军规小结
2010/07/17 PHP
php中全局变量global的使用演示代码
2011/05/18 PHP
获取用户Ip地址通用方法与常见安全隐患(HTTP_X_FORWARDED_FOR)
2013/06/01 PHP
php绘图之生成饼状图的方法
2015/01/24 PHP
php使用iconv中文截断问题的解决方法
2015/02/11 PHP
CI框架入门之MVC简单示例
2016/11/21 PHP
phpcms实现验证码替换及phpcms实现全站搜索功能教程详解
2017/12/13 PHP
Laravel框架之解决前端显示图片问题
2019/10/24 PHP
用js判断用户浏览器是否是XP SP2的IE6
2007/03/08 Javascript
小议Javascript中的this指针
2010/03/18 Javascript
JavaScript高级程序设计 读书笔记之十一 内置对象Global
2012/03/07 Javascript
JS中令人发指的valueOf方法介绍
2013/02/22 Javascript
在JavaScript并非所有的一切都是对象
2013/04/11 Javascript
jquery图片播放浏览插件prettyPhoto使用详解
2014/12/19 Javascript
js实现九宫格图片半透明渐显特效的方法
2015/02/16 Javascript
js省市联动效果完整实例代码
2015/12/09 Javascript
仅9张思维导图帮你轻松学习Javascript 就这么简单
2016/06/01 Javascript
js仿淘宝评价评分功能
2017/02/28 Javascript
完美解决UI-Grid表格元素中多个空格显示为一个空格的问题
2017/04/25 Javascript
Angular.js中定时器循环的3种方法总结
2017/04/27 Javascript
webpack打包后直接访问页面图片路径错误的解决方法
2017/06/17 Javascript
Vue2.X 通过AJAX动态更新数据
2018/07/17 Javascript
jquery实现的分页显示功能示例
2019/08/23 jQuery
python正则表达式match和search用法实例
2015/03/26 Python
举例讲解Python面向对象编程中类的继承
2016/06/17 Python
python dict 相同key 合并value的实例
2019/01/21 Python
使用pandas实现连续数据的离散化处理方式(分箱操作)
2019/11/22 Python
python使用信号量动态更新配置文件的操作
2020/04/01 Python
HTML利用九宫格原理进行网页布局
2020/03/13 HTML / CSS
澳大利亚冲浪和时尚服装网上购物:SurfStitch
2017/07/29 全球购物
Bata印度官网:源自欧洲舒适鞋履品牌
2020/01/30 全球购物
实践论读书笔记
2015/06/29 职场文书
3招让你摆脱即兴讲话冷场尴尬
2019/08/08 职场文书
html+css合并表格边框的示例代码
2021/03/31 HTML / CSS