面试
imwanglinlin
inner peace
展开
-
如何判断函数的执行效率
将下面的函数按照执行效率高低排序。它们都接受由0至1之间的数字构成的列表作为输入。这个列表可以很长。一个输入列表的示例如下:[random.random() for i in range(100000)]。你如何证明自己的答案是正确的。def f1(lIn): l1 = sorted(lIn) l2 = [i for i in l1 if i<0.5] return原创 2018-01-30 18:34:56 · 2261 阅读 · 0 评论 -
海量数据取top K问题
一个列表中有1亿个数据,需要取出其中最大的前100个数据,如何尽可能的降低时间复杂度?最容易想到的方法是先对这1亿个数据排序,然后取出最大的100个数据,这样的话时间复杂度就是O(nlogn),显然方法不合适。可以考虑的方法如下:1.把这个列表截取成1000个子列表;2.然后分别找出这1000个子列表中的最大的100个数据;3.把这1000个子列表中的100个数据全部放到一个新的列表中,再重新排序...原创 2018-02-26 16:12:00 · 952 阅读 · 0 评论