簡體   English   中英

簡單 if else 語句的時間復雜度

[英]Time complexity of simple if else statement

我是一個新手,無法理解 if else 語句的時間復雜度。 我在網上讀到,if-else 的時間復雜度以最大值和最小值兩種形式給出。

根據我的理解,max 和 min 都是 O(1),但有些網站會以其他方式共享,我無法理解。 謝謝你。

Function copy(number)
  If number == 3
     console.log("number is 3");
  Else
     console.log("number is not 3");

為了清楚起見,從您在評論中發布鏈接來看,它說:

if-then-else 語句

if (condition) {
    sequence of statements 1
}
else {
    sequence of statements 2
}

在這里,要么執行序列 1,要么執行序列 2。 因此,最壞情況下的時間是兩種可能性中最慢的:max(time(sequence 1), time(sequence 2))。 例如,如果序列 1 是 O(N) 而序列 2 是 O(1),則整個 if-then-else 語句的最壞情況時間將為 O(N)。

這意味着您要考慮其中一個序列的最壞時間復雜度,而不是if-else-語句本身。

讓我再舉一個例子

function foo(){
  if (bar) {
    return 'bar'; // O(1)
  } else {
    return someArray.map((a) => a+1); // O(n)
  }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM