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中使用sort()方法进行排序的简单教程
May 21 Python
Python和C/C++交互的几种方法总结
May 11 Python
详解python之多进程和进程池(Processing库)
Jun 09 Python
利用python模拟sql语句对员工表格进行增删改查
Jul 05 Python
mysql 之通过配置文件链接数据库
Aug 12 Python
利用selenium 3.7和python3添加cookie模拟登陆的实现
Nov 20 Python
基于Django的乐观锁与悲观锁解决订单并发问题详解
Jul 31 Python
Django框架 querySet功能解析
Sep 04 Python
Python二维数组实现求出3*3矩阵对角线元素的和示例
Nov 29 Python
Python文本处理简单易懂方法解析
Dec 19 Python
Python爬虫之Selenium实现窗口截图
Dec 04 Python
python调用ffmpeg命令行工具便捷操作视频示例实现过程
Nov 01 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
xajax写的留言本
2006/11/25 PHP
php带密码功能并下载远程文件保存本地指定目录 修改加强版
2010/05/16 PHP
session在PHP大型web应用中的使用
2011/06/25 PHP
thinkphp 多表 事务详解
2013/06/17 PHP
php准确计算复活节日期的方法
2015/04/18 PHP
php结合mysql与mysqli扩展处理事务的方法
2016/06/29 PHP
微信公众号开发之语音消息识别php代码
2016/08/08 PHP
PHP用mysql_insert_id()函数获得刚插入数据或当前发布文章的ID
2016/11/25 PHP
js监听输入框值的即时变化onpropertychange、oninput
2011/07/13 Javascript
表单验证的完整应用案例探讨
2013/03/29 Javascript
js获取客户端网卡的IP地址、MAC地址
2014/03/26 Javascript
jQuery中eq()方法用法实例
2015/01/05 Javascript
javascript实现简单的二级联动
2015/03/19 Javascript
jquery实现的回旋滚动效果完整实例【附demo源码下载】
2016/09/20 Javascript
Bootstrap select下拉联动(jQuery cxselect)
2017/01/04 Javascript
jQuery实现获取table中鼠标click点击位置行号与列号的方法
2017/10/09 jQuery
JavaScript实现获取select下拉框中第一个值的方法
2018/02/06 Javascript
ionic4+angular7+cordova上传图片功能的实例代码
2019/06/19 Javascript
js获取本日、本周、本月的时间代码
2020/02/01 Javascript
小程序按钮避免多次调用接口和点击方案实现(不用showLoading)
2020/04/15 Javascript
在vant 中使用cell组件 定义图标该图片和位置操作
2020/11/02 Javascript
[35:34]Liquid vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Win10下python 2.7.13 安装配置方法图文教程
2018/09/18 Python
Python实现图片裁剪的两种方式(Pillow和OpenCV)
2019/10/30 Python
python识别验证码图片实例详解
2020/02/17 Python
Pycharm创建文件时自动生成文件头注释(自定义设置作者日期)
2020/11/24 Python
豆腐の盛田屋官网:日本自然派的豆乳面膜、肥皂、化妆水、乳液等
2016/10/08 全球购物
在线购买世界上最好的酒:BoozeBud
2018/06/07 全球购物
介绍一下常见的木马种类
2014/11/15 面试题
大学生职业规划前言模板
2013/12/27 职场文书
酒店销售主管岗位职责
2014/01/04 职场文书
党的群众路线整改落实情况汇报
2014/10/28 职场文书
2015年护士工作总结范文
2015/03/31 职场文书
2015年学校政教处工作总结
2015/05/26 职场文书
Python 中的单分派泛函数你真的了解吗
2021/06/22 Python
浅析CSS在DevTools 中架构演变
2021/10/05 HTML / CSS