簡體   English   中英

大O符號檢查理解

[英]Big-O notation check understanding

我想檢查一下我對Big-O符號的理解。 如果我有代碼:

 for(int bound = 1; bound <= n; bound *= 2){
      for( int i = 0; i < bound; i++) {
            for(int j = 0; j < n; j += 2){
                   .....Code
            }
            for(int j = 1; j < n; j *= 2){
                   ......Code
            }
      }
 }

N 3的Big-O符號是什么?

不完全的。 外循環增量bound *= 2 ,因此循環為O(log n)。 兩個內部循環( i和第一個j循環)都是O(n),因此嵌套時它們是O(n 2 )。 (您可以忽略j *= 2內部循環,因為它比j += 2循環快,並且不會顯着影響程序的運行時間。)

將所有內容放在一起,整個程序為O(log n * n 2 )。

暫無
暫無

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

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