巢狀迴圈難題?
在本部分,我們將介紹一個有趣的難題。我們將看到兩段程式碼段。兩者都有兩個巢狀迴圈。我們必須確定哪一個執行得更快。(我們將假設編譯器不最佳化程式碼)。
程式碼段 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 次。所以,它將比第一段程式碼花費更長的時間。
廣告
Data Structure
Networking
RDBMS
Operating System
Java
iOS
HTML
CSS
Android
Python
C Programming
C++
C#
MongoDB
MySQL
Javascript
PHP