数据结构与算法 由小到大写出以下时间复杂度的序列:

如题所述

授人以鱼不如授人以渔

时间复杂度如果是一连串加法,化简完后,只要最大的那个(而且系数不要),其他的不要

(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)
温馨提示:内容为网友见解,仅供参考
第1个回答  2014-11-29
楼下错了,应该是
(3) (6) (4) (1) (2) (5)
分别对应:
o(logn) o(n) o(nlogn) o(n^2) o(n^3) o(2^n)
相似回答