有一亿个整数,请找出最大的 1000 个,要求时间越短越好, 空间占用越好越好. 如果不考虑时间效率,很容易想到解决方法,我们只需存储前一千个数, 然后依次读入后面的数和这一千个数组比较,替换其中比较小的数即可, 但是这样时间复杂度比较高,如果用二叉堆实现,直接可以替换1000个数中最小的数字, 而消耗的时间大多数话费在二叉堆插入中,二叉堆的插入复杂度为Olog(N),比较理想. 由于题目中数目太大,代码实现中是用户不停输入数字,然后程序找出前十个最大的数. 下面我们来实现它: #include…