Python版堆排序算法

2016-11-29 董付国 Python小屋 Python小屋

其他排序算法的Python实现请参考Python版归并排序算法(附Python程序__name__属性用法演示视频)侏儒排序算法原理与Python实现Python版基于递归的冒泡排序算法Python版快速排序算法Python版选择排序算法Python版冒泡法排序算法

本文再给出Python版的堆排序算法,这样的话关于排序算法基本上就全了。本文代码主要借助于标准库heapq中的入堆和出堆函数来实现,属于原地排序,直接影响原来的列表。

from heapq import heappush, heappop

import random


def heapSort(lst):

    temp = []

    for item in lst:

        #入堆

        heappush(temp, item)

    lst.clear()

    for i in range(len(temp)):

        #出堆

        lst.append(heappop(temp))


lst = [random.randint(1,100) for i in range(20)]

print(lst)

heapSort(lst)

print(lst)