利用hash表的实例

来源:互联网 发布:javascript小游戏源码 编辑:程序博客网 时间:2024/05/18 00:26

题目:对n个数字进行排序,其中两两不同的数字个数为k,n远远大于k,而n的取值区间长度超过内存的大小,时间复杂度最小可以是()

A.O(nlogk)

B.O(nk)

C.O(n)

D.O(nlogn)


答案:C


解析:因为不确定数字的范围,所以桶排序不适合,又因为n远远大于k,所以可以使用hash表来统计,首先获得k个数及其每个数字的出现次数,然后对k个数进行排序,排序的时间复杂度可以忽略不计,实际上就是遍历一遍n个数字,所以本题的时间复杂度为O(n)。

0 0