巢狀迴圈難題?


在本部分,我們將介紹一個有趣的難題。我們將看到兩段程式碼段。兩者都有兩個巢狀迴圈。我們必須確定哪一個執行得更快。(我們將假設編譯器不最佳化程式碼)。

程式碼段 1

for(int i = 0; i < 10; i++){
   for(int j = 0; j<100; j++){
      //code
   }
}

程式碼段 2

for(int i = 0; i < 100; i++){
   for(int j = 0; j<10; j++){
      //code
   }
}

兩段程式碼的執行次數相同。兩種情況下,兩個迴圈內的程式碼都會執行 10000 次。但是如果仔細觀察,我們可以發現第二段程式碼比第一段程式碼執行的任務更多。在第一段程式碼中,內部迴圈將執行 10 次。因此,初始化、條件檢查和增量操作將執行 10 次。但是在第二段程式碼中,內部迴圈將執行 100 次。因此,初始化、條件檢查和增量操作將執行 100 次。所以,它將比第一段程式碼花費更長的時間。

更新日期: 2019-07-31

402 次瀏覽

開啟您的 職業生涯

完成課程獲得認證

開始
廣告
© . All rights reserved.