授人以鱼不如授人以渔
时间复杂度如果是一连串加法,化简完后,只要最大的那个(而且系数不要),其他的不要
(1)n^2 + 1000n
只要n^2
n^2复杂度是o(n^2)
(2)3n^3 + 100n^2
只要3n^3,即为n^3
n^3复杂度是o(n^3)
(3)10 + 3log10(n)
只要3log10(n),即为log10(n),(10转换为10*n^0,最小的)
log10(n)复杂度是o(logn)
(4)10n + 20n*log10(n)
只要20n*log10(n),即为n*log10(n)
n*log10(n)复杂度是o(n*logn)
(5)2^n
2^n复杂度是o(2^n)
(6)1000n
即为n
n复杂度是o(n)
o(1)<o(logn)<o(n)<o(nlogn)<o(n^2)<o(n^3)<o(2^n)
直接把n看成是一个很大的数,比如10000,一万,然后代进o(logn),o(n^3)等里面,就可以知道大小关系,o(1)即为o(n^0)
另外,如果有两个算法,一个是3n^2,另一个是5n^2,那么他们时间复杂度都一样是o(n^2),时间复杂度是相等的,没有大小之分。
因此排序是
(3) (6) (4) (1) (2) (5)
温馨提示:答案为网友推荐,仅供参考