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网络编程之TCP通信实例和socketserver框架使用例子
Apr 25 Python
Python中强大的命令行库click入门教程
Dec 26 Python
python中使用print输出中文的方法
Jul 16 Python
python: 判断tuple、list、dict是否为空的方法
Oct 22 Python
python无限生成不重复(字母,数字,字符)组合的方法
Dec 04 Python
对Python实现累加函数的方法详解
Jan 23 Python
Tensorflow分类器项目自定义数据读入的实现
Feb 05 Python
实例详解Matlab 与 Python 的区别
Apr 26 Python
python3 requests库文件上传与下载实现详解
Aug 22 Python
Python统计分析模块statistics用法示例
Sep 06 Python
解决Opencv+Python cv2.imshow闪退问题
Apr 24 Python
python在地图上画比例的实例详解
Nov 13 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页面间参数传递的四种方法详解
2013/06/09 PHP
PHP将回调函数作用到给定数组单元的方法
2014/08/19 PHP
PHP使用glob函数遍历目录或文件夹的方法
2014/12/16 PHP
php关联数组快速排序的方法
2015/04/17 PHP
Thinkphp框架开发移动端接口(2)
2016/08/18 PHP
iOS10推送通知开发教程
2016/09/19 PHP
PHP实现微信提现功能
2018/09/30 PHP
laravel 框架结合关联查询 when()用法分析
2019/11/22 PHP
基于jQuery制作迷你背词汇工具
2010/07/27 Javascript
jQuery实现获取绑定自定义事件元素的方法
2015/12/02 Javascript
jQuery插件dataTables添加序号列的方法
2016/07/06 Javascript
js实现带进度条提示的多视频上传功能
2020/12/13 Javascript
详解开源的JavaScript插件化框架MinimaJS
2017/10/26 Javascript
快速解决brew安装特定版本flow的问题
2018/05/17 Javascript
JavaScript+H5实现微信摇一摇功能
2018/05/23 Javascript
JS实现数组的增删改查操作示例
2018/08/29 Javascript
vue中利用iscroll.js解决pc端滚动问题
2020/02/15 Javascript
Python3基础之输入和输出实例分析
2014/08/18 Python
python处理csv数据的方法
2015/03/11 Python
Python中几种操作字符串的方法的介绍
2015/04/09 Python
利用Python如何生成便签图片详解
2018/07/09 Python
推荐10款最受Python开发者欢迎的Python IDE
2018/09/16 Python
python数组循环处理方法
2019/08/26 Python
python 轮询执行某函数的2种方式
2020/05/03 Python
VSCode配合pipenv搞定虚拟环境的实现方法
2020/05/17 Python
Python实现网络聊天室的示例代码(支持多人聊天与私聊)
2021/01/27 Python
美国亚马逊旗下时尚女装网店:SHOPBOP(支持中文)
2020/10/17 全球购物
Nike瑞士官网:Nike CH
2021/01/18 全球购物
思想政治自我鉴定
2013/10/06 职场文书
新年主持词
2014/03/27 职场文书
爱之链教学反思
2014/04/30 职场文书
口才训练演讲稿范文
2014/09/16 职场文书
人与自然的观后感
2015/06/18 职场文书
SQL语句中JOIN的用法场景分析
2021/07/25 SQL Server
动画《新网球王子 U-17 WORLD CUP》希腊队PV公开
2022/04/02 日漫
Python+DeOldify实现老照片上色功能
2022/06/21 Python