1000个乱序正整数(每个数都小于1000)中找出10个最大数问题(最高效,不服来战)

一、以空间换时间(最高效)

1.声明一个数组a[0]-a[999]

2.for循环这1000个数,将数组中下标与相对应的数相同的设置为个数加1,否则设置为0.

(例如,这1000个数中,某个数是555,就把a[555]=1,如果再次出现555,然后a[555]=2,以此类推)

3.数组逆向循环,找出10个不等于0的数,把数组下标打印出来

N<时间复杂度<2N(N=1000)

二、冒泡排序

遍历一次冒出一个最大数,需要遍历10次

时间复杂度=10N(N=1000)

原文地址:https://www.cnblogs.com/huangzs/p/8711915.html