在1000个无序元素,用最快方法挑出前10个最大的,用(快排,冒泡,基数,堆)哪一个?

2025-03-12 20:55:55
推荐回答(1个)
回答1:

假定运行时间之和时间复杂度有关。
快排的复杂度是O(n*logn)所以如果快排来解决的话,用的时间大约是 1000*log1000个单位。
冒泡是O(n^2)所以是1000*1000个单位。
基数和数字大小有关,所以不好分析。
堆,建一个10个节点的堆,每次插入删除的时间消耗是10*log10,将1000个元素扫描一边,需要1000*10*log10个单位。
所以,你自己算一下那个快吧。