python希尔排序的使用原理
2023-03-20 15:31:49 时间
概念
希尔排序是插入排序的最佳版本,也称为减少增量排序。把列表分成n组,比较各组对应的要素的大小,交换位置。
原理分析
1、将数组列在一个表格中,并将数组分别插入排序,重复这个过程,但每一次都要用更长的列。
2、把数组转换成表格是为了更好地理解这个算法,算法本身还是用数组来排序。
实例
def shll_sort(alist): n = len(alist) gap = n//2 #定义初始步长,要取整数,否则下面for循环会报错'float' object cannot be interpreted as an integer while gap>0:#按步长进行插入排序 for i in range(gap,n): j = i while j>=gap and alist[j-gap]>alist[j]: alist[j-gap],alist[j]=alist[j],alist[j-gap] j=j-gap gap = gap//2#得到新的步长,注意是在while后面的缩进
以上就是python希尔排序的使用原理,希望对大家有所帮助。更多Python学习指路:python基础教程
本文教程操作环境:windows7系统、Python 3.9.1,DELL G3电脑。
相关文章
- Python中的函数与方法 以及Bound Method和Unbound Method
- 一文贯通python文件读取
- Python 中的异步编程:Asyncio
- 7个你现在就该学习Python的理由
- 提高Python运行效率的六个窍门
- Python数据科学:神经网络
- 一篇文章看懂大数据分析就业前景及职能定位
- R和Python中的文本挖掘:8个入门小贴士
- 告诉你为什么Python有点慢,但我却无所谓?
- 专注学习DevOps编程语言Top 5推荐
- Python发送邮件脚本
- Python多进程并行编程实践: mpi4py 的使用
- Python语言在未来的发展前景
- Python vs Ruby: 谁是最好的 web 开发语言?
- Python对Ruby:谁在Web开发领域更胜一筹?
- Python一行代码完成并行任务
- Python开发者2017应该关注的七个类库
- python爬虫入门基本知识
- 在终端中优雅地编写Python
- Python机器学习实战:信用卡欺诈检测