码迷,mamicode.com
首页 > 编程语言 > 详细

堆排序的python实现

时间:2019-10-20 09:18:03      阅读:95      评论:0      收藏:0      [点我收藏+]

标签:end   实现   break   append   ret   建堆   imp   pen   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实现

标签:end   实现   break   append   ret   建堆   imp   pen   python   

原文地址:https://blog.51cto.com/870084/2443897

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!