Python中堆排序怎么理解,实现过程是怎样
Admin 2022-06-07 群英技术资讯 336 次浏览
在使用python中,你会遇到一个词,就是堆排序。那堆排序是什么呢?堆排序看字面意思是一种排序方法,那堆是什么呢?堆是一个近似完全二叉树的结构,并同时满足堆积的性质。其实堆排序是指利用堆这种数据结构所设计的一种排序算法。认识了堆排序,那你知道堆排序在python中如何实现吗?本文小编就像大家演示推排序在python的实现代码。
代码:
def heap_sort(array, n, length): l = 2*n + 1 r = 2*n + 2 if l <= length - 1: heap_sort(array, l, length) if r <= length - 1: heap_sort(array, r, length) if l >= length: return index = l if r < length and array[r] > array[l]: index = r if array[n] < array[index]: array[n], array[index] = array[index], array[n]
测试:
if __name__ == '__main__': a = input("输入数组元素:").split(" ") a = list(map(int, a)) b = a.copy() c = a.copy() for i in range(len(c)): heap_sort(c, 0, len(c) - i) c[0], c[len(c) - i - 1] = c[len(c) - i - 1], c[0] print(c) 输入数组元素:4 8 3 6 7 1 5 [1, 3, 4, 5, 6, 7, 8] Process finished with exit code 0
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
这篇文章主要介绍python实现跳表的内容,一些朋友可能对跳表是什么不是很了解,对此,接下来我们现了解一下跳表,再看python如何实现跳表,感兴趣的朋友就继续往下看吧。
最近整理了一些好用的库但是只是初级介绍,如果大家用得到的话还请自己到官网上查一下,因为东西太多我一 一介绍的话可能不太现实,需要的朋友可以参考下
随着现在短视频类越来越火,随之而来的就是大量的视频图像的处理。这篇文章主要为大家介绍了Python如何一键实现图像压缩和图像处理,希望对你们有所帮助
这篇文章介绍了Python使用email、smtplib、poplib、imaplib模块收发邮件的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
这篇文章主要介绍了python udp如何实现同时收发信息,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008