習題一初步理解時間複雜度大O表示法案例

2022-07-16 19:39:10 字數 1029 閱讀 1879

如上:a+b+c=1000, a平方+b平方=c平方  求出所有abc可能的組合?

思路方法:用列舉法,a,b,c 乙個乙個試。

//列舉法:

//a=0 ... a=1000;

//b=0 ... c=1000;

//c=0 ... c=1000;

//三個巢狀迴圈實現

如果 a+b+c= 3000

時間複雜度則可看做為:

t = 3000*3000*3000*2

如果 a+b+c= n

時間複雜度則可看做為:

t = n*n*n*2

t(n)=n^3*2

t(n)=n^3*10 (細化分:不是很關注的,對於這個)

t(n)=n^3*k (k 細分的係數對,可以忽略,不考慮那麼細緻可以看做 t(n) = n^3)

係數對資料走勢並不影響,可以忽略,主要是和n有關的幾次方影響資料走向的態勢。

漸進函式與時間複雜度

t(n) = k*g(n)+c k常數,c實常數

g(n) = n^3

g(n) 叫作 t(n) 的漸進函式

如上例項的:g(n) 就可以看作是 時間複雜度t(n) 的大o表示法, n就是解決問題的規模

時間複雜度

t(n) = k*g(n)+c

大o表示法就是:

o(n) = g(n) = n^3 (忽略掉常數和實常數)

基本操作,即只有常數項,認為其時間複雜度為o(1)

順序結構,時間複雜度按加法進行計算

迴圈結構,時間複雜度按乘法進行計算

分支結構,時間複雜度取最大值

判斷乙個演算法的效率時,往往只需要關注運算元量的最高次項,其它次要項和常數項可以忽略

在沒有特殊說明時,我們所分析的演算法的時間複雜度都是指最壞時間複雜度

時間複雜度 大O演算法

演算法的執行效率,就是演算法 的執行時間。我們需要能夠用肉眼就看出一段 的執行時間。int cal int n return sum 2,3行都執行了1個unit time的執行時間,4,5行都執行了n遍,所以是2n unit time的執行時間,所以一共是 2n 2 unit time。所有的 的...

大O符號與時間複雜度

大o符號 big o notation 是用於描述函式漸進行為的數學符號。也可以這麼說 用乙個大o,在其括號 中,用另乙個函式來描述原來的函式的數量級的漸進上界 電腦科學中,用於分析演算法複雜性非常有用 這個符號有兩種形式上很接近但迥然不同的使用方法 無窮大漸近與無窮小漸近。然而這個區別只是在運用中...

大O表示法 時間複雜度

引入原因 用另乙個 通常更簡單的 函式來描述乙個函式數量級的漸近上界。定義 如果乙個問題的規模是n,解這一問題的某一演算法所需要的時間為t n 它是n的某一函式。t n 稱為這一演算法的 時間複雜度 某個演算法的複雜度到達了這個問題複雜度的下界,那就稱這樣的演算法是最佳演算法 決定演算法複雜度的是執...