从n个数中找出最小的k个数(n >> k),最优平均时间复杂度是?
摘要:
1.先直接排序,再取排序后数据的前k个数。排序算法用最快的堆排序,复杂度也会达到O(N*logN)。当k接近于N时,可以用这种算法。 2.先排序前k个数,对于后面N-k个数,依次进行插入。时间复杂度为O(k*n)。当k很小时,可以用这种算法。 3.对前k个数,建立最大堆,对于后面N-k个数,依次和最 阅读全文
posted @ 2017-03-10 21:06 时间的女儿 阅读(591) 评论(0) 推荐(0) 编辑