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单例模式实例详解
Mar 01 Python
简单了解python模块概念
Jan 11 Python
Python 网络爬虫--关于简单的模拟登录实例讲解
Jun 01 Python
python程序封装为win32服务的方法
Mar 07 Python
详解Python基础random模块随机数的生成
Mar 23 Python
python pytest进阶之conftest.py详解
Jun 27 Python
python爬虫 urllib模块反爬虫机制UA详解
Aug 20 Python
python中的subprocess.Popen()使用详解
Dec 25 Python
通过python调用adb命令对App进行性能测试方式
Apr 23 Python
在matplotlib中改变figure的布局和大小实例
Apr 23 Python
Python预测2020高考分数和录取情况
Jul 08 Python
python的列表生成式,生成器和generator对象你了解吗
Mar 16 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错误和异长常处理总结
2014/03/06 PHP
php实现保存submit内容之后禁止刷新
2014/03/19 PHP
PHP实现上传文件并存进数据库的方法
2015/07/16 PHP
php多文件打包下载的实例代码
2017/07/12 PHP
php中访问修饰符的知识点总结
2019/01/27 PHP
laravel 5.5 关闭token的3种实现方式
2019/10/24 PHP
js实现权限树的更新权限时的全选全消功能
2009/02/17 Javascript
Javascript new关键字的玄机 以及其它
2010/08/25 Javascript
jquery实现网站超链接和图片提示效果
2013/03/21 Javascript
各种页面定时跳转(倒计时跳转)代码总结
2013/10/24 Javascript
网页右侧悬浮滚动在线qq客服代码示例
2014/04/28 Javascript
学习使用AngularJS文件上传控件
2016/02/16 Javascript
JQuery ztree带筛选、异步加载实例讲解
2016/02/25 Javascript
简介EasyUI datagrid editor combogrid搜索框的实现
2016/04/01 Javascript
JavaScript记录光标在编辑器中位置的实现方法
2016/04/22 Javascript
JS实现向iframe中表单传值的方法
2017/03/24 Javascript
JavaScript实现简单的四则运算计算器完整实例
2017/04/28 Javascript
令按钮悬浮在(手机)页面底部的实现方法
2017/05/02 Javascript
JS沙箱模式实例分析
2017/09/04 Javascript
JavaScrip关于创建常量的知识点
2017/12/07 Javascript
解决vue 引入子组件报错的问题
2018/09/06 Javascript
微信小程序之侧边栏滑动实现过程解析(附完整源码)
2019/08/23 Javascript
详解Python中最难理解的点-装饰器
2017/04/03 Python
Django rest framework工具包简单用法示例
2018/07/20 Python
Python使用爬虫抓取美女图片并保存到本地的方法【测试可用】
2018/08/30 Python
python 处理数字,把大于上限的数字置零实现方法
2019/01/28 Python
Python中顺序表原理与实现方法详解
2019/12/03 Python
使用Python+selenium实现第一个自动化测试脚本
2020/03/17 Python
Python使用Paramiko控制liunx第三方库
2020/05/20 Python
python图片验证码识别最新模块muggle_ocr的示例代码
2020/07/03 Python
Python 如何反方向迭代一个序列
2020/07/28 Python
详解vscode实现远程linux服务器上Python开发
2020/11/10 Python
SmartBuyGlasses荷兰:购买太阳镜和眼镜
2020/03/16 全球购物
面试后的英文感谢信
2014/02/01 职场文书
员工趣味活动方案
2014/08/27 职场文书
幸福家庭事迹材料
2014/12/20 职场文书