排序算法集合(1)-Python实现的堆排序

      最近自己动手实现了各种排序算法,有冒泡、插入、快速排序、二叉树排序等等,觉得快速排序的效率(对于一般的乱序而言)的确无可匹敌。当然,堆排序也很酷。不过前几个使用c#实现的,而堆排序是用python实现的,没办法做benchmark了。今后几天陆续贴出来,供大家参看。

      堆排序的算法请参考:http://baike.baidu.com/view/157305.htm

      其中,createHeap()能够将一个list创建成堆(最大值在最上),而它是基于insertIntoHeap()的,后者的原理是把一个值插入到一个堆中。还有一个重要的函数是topDownHeap(), 这是堆排序的关键一步,将位于堆队列最后的元素,放置到堆顶,然后通过向左右分支做比较,将其沉降到一个合适位置。最后,还有一个辅助功能printHeap(),它能将一个堆队列,以树状打印出来。

 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值