c++数据结构题目求助!!!设有1000个基本有序的元素,希望用最快的速度挑选出其中前10个最大的元素,最后选用(
收藏:
0
点赞数:
0
评论数:
0
1个回答

A

1、因为是topN的问题,所以一般考虑“选择排序”算法,这里只有“冒泡”是选择排序。

2、虽然冒泡的时间复杂度是O(n^2),但在这里由于基本有序,且只挑选前10个元素,复杂度10n左右,而b、c、d都是要做全局的排序,没有利用“基本有序”这个特点。

3、如果没有基本有序的条件,取topN,改进的“快排”,平均效果会更好些。

点赞数:
0
评论数:
0
关注公众号
一起学习,一起涨知识