c++数据结构题目求助!!!设有1000个基本有序的元素,希望用最快的速度挑选出其中前10个最大的元素,最后选用(

1个回答

  • A

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

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

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