源码之家

  • 首页
  • 文章
  • 问答
  • 下载
您的位置: 首页  >  文章  >  堆排序的python实现

堆排序的python实现

分类: 文章 • 2022-04-24 20:08:52

堆排序的python实现


import math

def build_heap(arr):
    # 创建堆
    for i in range(1, len(arr)):
        s = i
        p = math.ceil(s / 2) - 1
        while p >= 0:
            if arr[s] > arr[p]:
                arr[s], arr[p] = arr[p], arr[s]
            else:
                break
            s = p
            p = math.ceil(s / 2) - 1
    return arr

def sort(arr):
    # 创建排序列表
    result_list = []
    while arr:
        arr = build_heap(arr)
        result_list.append(arr.pop(0))
    return result_list

l = [5, 2, 7, 8, 6, 1, 4, 9, 10, 1, 2, 3, 4, 100]
print(sort(l))

​

相关推荐

  • 从虚拟机架构到编译器实现导引【一本书的长度】
  • python篮球-基于Python/Java的人工智能篮球训练系统的制作方法
  • Java程序员“黄金五年”:如何实现月薪一万五到年薪50万的转变?
  • .NET Core中的一个接口多种实现的依赖注入与动态选择看这篇就够了
  • 解决cmd中Python不能print的问题
  • 实现物联网的关键 ReRAM的现状及未来解读
  • EA Forest实现价值的真实传递
  • 再高深的 Python 面试难题,这门课都给你整得明明白白!
  • 如何选择深度学习模型中最优的学习率和源码实现
  • 【PC工具】更新最全最好的编程手册管理软件Zeal,arduino学习、python学习编程语法查阅必备工具...
  • 插入排序的python实现
  • 抢占式实例的最高出价和抢占式实例当前市场价格的关系是什么
    网站免责声明 网站地图 最新文章 用户隐私 版权申明
本站所有数据收集于网络,如果侵犯到您的权益,请联系网站进行下架处理。   

Copyright © 2018-2021   Powered By 源码之家    备案号:   粤ICP备20058927号