题目:输入M个数,从中找到K个最小的数
比如输入10,-9,0,100,90,1,4,-9;找到最小的3个数为:-9,-9,0
1这道题最坏的办法是对M个数进行排序,排序算法最好的时间复杂度是o(mlogm...A,然后下一个数跟A对比,比A大则不要,比A小则入选,如此循环;时间复杂度是o(m*k)
4 最后一种是对方法3的一个优化,在找数组K个数中最大数时,最好的时间复杂度是用大根堆的方式,时间复杂度是logk...,整体的时间复杂度是o(m*logk)。...这样最后堆里的内容就是要输出的内容
下面是第四种方式的代码:
'''
查找最小的k个元素
题目:输入n个整数,输出其中最小的k个。...= [10,-9,0,100,90,1,4,-9]
k = 7
heap = []
len_m = len(m)
#对异常输入做返回
if k m