资 源 简 介
应用背景
该问题是这样描述的:找n个数中的前k个最小数,要求时间复杂度和空间复杂度尽可能低。(n可能很大)
据说这是一些知名公司的面试题目。题目看起来简单,就区区二十来字,但是要求却不低。这里面蕴含的算法思想在金融等领域的软件中都有应用。在此分享,希望能给同仁们一些参考。
关键技术本实例中主要是通过堆排序来实现的,堆排序算法的实现中的难点在于对堆的调整,无论是最大堆还是最小堆,在具体应用中都会维持着一种动而不乱的结构。这里面还用到桶排序的思想,其实它也是建立在堆排序基础上的。C语言实现的代码看起来简洁明了。