亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么 O(n^2) 與 O(ab) 不同?

為什么 O(n^2) 與 O(ab) 不同?

弒天下 2023-06-04 15:05:37
我的問題是 O(n^2) 與 O(ab) 之間的區別是什么。嵌套的 for 循環中有兩個不同的 N 數組。從 CTCI 中,我讀到它不是 O(N^2) 而不是 O(ab),因為它有不同的輸入。for (int i = 0; i < arrayA.length; i++) {    for (int j = 0; j < arrayB.length; j++) {    }}
查看完整描述

4 回答

?
慕的地8271018

TA貢獻1796條經驗 獲得超4個贊

很簡單的:

因為做類似 (a) 1 x (b) 1000 萬……只需要 1000 萬個“時隙”。

而 (n) 1000 萬 x (n) 1000 萬……好吧,那總是 n*n,不是嗎。

換句話說:O(ab) 表示您有兩個決定復雜性的參數。O(n^2) 表示您的復雜性取決于一個參數。


查看完整回答
反對 回復 2023-06-04
?
翻翻過去那場雪

TA貢獻2065條經驗 獲得超14個贊

為什么 O(n^2) 與 O(ab) 不同?

O(n^2)轉化為O(n*n),其復雜度僅取決于 1 個變量。您的示例取決于 2 個獨立變量,因此復雜性不一定是這兩個變量中的任何一個的二次方。例如,如果您有一個非常小b和一個非常高的a,那么您的復雜度幾乎與 a 成線性關系。

這兩個表達式相等的唯一情況是 when n = a = b, thenO(n^2) = O(a*b)將適用。


查看完整回答
反對 回復 2023-06-04
?
慕娘9325324

TA貢獻1783條經驗 獲得超4個贊

如果 a 和 b 的長度相同,則為 O(n^2),否則為 O(ab)



查看完整回答
反對 回復 2023-06-04
?
catspeake

TA貢獻1111條經驗 獲得超0個贊

因為它取決于應用程序/輸入的屬性。

如果 a 或 b 保持較低或恒定,則 O(ab) 的縮放比例類似于 O(n) 而不是 O(n^2)。


查看完整回答
反對 回復 2023-06-04
  • 4 回答
  • 0 關注
  • 196 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號