筆試題 簡述以下兩個for迴圈的優缺點

2021-09-06 19:22:00 字數 644 閱讀 1027

// 第乙個

for (i=0; i++;)

優點:程式簡潔

缺點:多執行了n-1次邏輯判斷,並且打斷了迴圈「流水線」作業,使得編譯器不能對迴圈進行優化處理,降低了效率。每一次迴圈裡都有比較,增加了程式空間複雜度

// 第二個

if (condition)

else

優點:迴圈的效率高,**相比第乙個複雜一點,但迴圈裡沒有比較,降低了空間複雜度。

缺點:程式不簡潔

1.效率低但程式簡潔

2.效率高但程式不簡潔

1的程式比2多執行了n-1次邏輯判斷。並且由於前者老要進行邏輯判斷,打斷了迴圈「流水線」作業,使得編譯器不能對迴圈進行優化處理,降低了效率。如果n非常大,最好採用2的寫法,可以提高效率。如果n非常小,兩者效率差別並不明顯,採用1的寫法比較好,因為程式更加簡潔。

乙個是在for迴圈加入判斷語句 使得迴圈不連續 增大執行時間

另乙個是在判斷後執行for迴圈 雖然沒有打斷迴圈連續 但**增加 

如果是同樣的邏輯的話 建議不在for迴圈中加判斷

其實這個就是迴圈內層和外層的大小的問題,c/c++程式設計規範裡面的

請簡述以下兩個for 迴圈的優缺點

今天筆試時候遇到乙個問題,找到相似的。for i 0 i if condition else 優點 程式簡潔 缺點 多執行了n 1次邏輯判斷,並且打斷了迴圈 流水線 作業,使得編譯器不能對迴圈進行優化處理,降低了效率。優點 迴圈的效率高 缺點 程式不簡潔 看到網路上還有一種回答 前者 優點 程式簡潔...

兩個c語言筆試題目

1 將乙個字串轉化為乙個整形資料 int main char str char p str int n,i while p 0 n 計算字串的長度,不包括字串結束符,此步驟可以沒有 while str i i 10 i i str 0 字元1減去字元0,並將結果賦值給整形變數,則整形變數變為數值1....

筆試題 合併兩個有序鍊錶

已知兩個鍊錶head1和head2各自有序,請把他們合併成乙個鍊錶依然有序 1 3 5 7,2 4 6 8,合併 1 2 3 4 5 6 7 8 實現如下 思路 比較兩個鍊錶中data的值按小到大重新分到新的鍊錶中 node merge node head1 node head2 else node...