当前位置: 首页 > 问答 > Python编程 > 问答详情

python中堆排序算法如何实现?

12月09日 04:30724人阅读
梦老师 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

职业技能申请领取
您的姓名
您的电话
意向课程
点击领取

环球青藤

官方QQ

扫描上方二维码或点击一键加群,免费领取大礼包,加群暗号:青藤。 一键加群

问答来自

梦老师 Python编程
好评率85% 浏览724

相关问题

APScheduler如何实现定时任务?
许老师 Python编程
python中如何进行集合交集运算?
刘老师 Python编程
python len()函数的功能是什么?
付老师 Python编程
课程咨询 学员服务 公众号

扫描关注微信公众号

APP

扫描下载APP

返回顶部