希尔排序的Python实现
来源:互联网 发布:怎样开好淘宝店铺 编辑:程序博客网 时间:2024/06/06 00:16
代码:
#! /usr/bin/env python#coding=utf-8import randomdef shell_sort_pass(lst,left,delta): for i in range(left+delta,len(lst),delta): pivot = lst[i] while (i > left and lst[i-delta] > pivot): lst[i] = lst[i-delta] i = i - delta lst[i] = pivot def shell_sort(lst): sublist_cnt = len(lst) >> 1 while sublist_cnt > 0: for i in range(sublist_cnt): shell_sort_pass(lst,i,sublist_cnt) sublist_cnt = sublist_cnt >> 1 if __name__ == '__main__': lst = [random.randint(0,20) for i in range(10)] lst2 = lst[:] lst2.sort() print(lst) print(lst2) shell_sort(lst) print(lst)
>>>
[6, 17, 20, 14, 6, 7, 18, 7, 18, 3]
[3, 6, 6, 7, 7, 14, 17, 18, 18, 20]
[3, 6, 6, 7, 7, 14, 17, 18, 18, 20]
0 0
- 希尔排序的Python实现
- 希尔排序--Python实现
- python实现希尔排序
- 希尔排序 Python实现
- python实现希尔排序
- 希尔排序Python实现
- Python实现希尔排序
- python实现希尔排序
- 希尔排序算法 Python实现
- 希尔排序的实现
- 希尔排序的实现
- 希尔排序的实现
- 希尔排序的实现
- 希尔排序的实现
- 希尔排序的实现
- 希尔排序的实现
- 希尔排序的实现
- 希尔排序的实现
- 遍历map集合及迭代模式
- Netty系列之Netty百万级推送服务设计要点
- 工业4.0、传统互联网、移动互联网之联系
- 2015C++第二周,任务九:定义一个person类,派生student类,在派生teacher类,并派生当老师的学生。
- poj 2104 or poj2761 or hdu2665 划分树
- 希尔排序的Python实现
- vc6.0 MFC 单文档 静态分割窗口 --learn 3
- 1.17android小记
- Myeclipse10+Egit+bitbucket实现版本控制
- 一个对象实例化后从spring容器取出放在bean对象中,写出获取它的属性的set方法
- MyEclipse 10离线安装PyDev插件
- Struts1标签库如何升级到Struts2
- 工作杂谈:LBS定位服务
- 一些基本排序算法的实现(转载)