摘要: 最近在自学算法导论,看到堆排序这一章,来做一下笔记。堆排序是一种时间复杂度为O(lgn)的原址排序算法。它使用了一种叫做堆的数据结构。堆排序具有空间原址性,即指任何时候都需要常数个额外的元素空间存储临时数据。 堆:二叉堆是一个数组,它可以被看成一个近似的完全二叉树。除了最底层以外,该树是满的;且最底 阅读全文
posted @ 2018-03-12 19:54 土星狗蛋 阅读(463) 评论(0) 推荐(0)
摘要: 问题描述:输入一组数,指定一个k,输出这组数里第k大的数。 一般这种题目,第一想法是把整个数组先排序后,再选取第k位的数。但是这样做实际上浪费了大量的时间在排序上,我们只是要求第k大的数,并非要把整个数组排序完。 利用快速排序算法的性质:每一趟排序,必有一个元素位于最终的位置,而且于此同时这个元素左 阅读全文
posted @ 2018-03-12 16:37 土星狗蛋 阅读(267) 评论(0) 推荐(0)