[英]Why is the inner loop executing (n/2) times instead of (n) times
for (int i = 0; i < array.length; i++) {
for (int j = i + 1; j < array.length; j++) {
if (array[i] == array[j]) return true;
}
}
編輯:忘記添加外循環。 我被初始化為零。
為什么此代碼執行(n / 2)次而不是(n)次?
該循環平均執行n / 2次:
如果將第一行添加到最后一行,第二行從后面添加到第二行,第三行從后面添加到第三行,依此類推,每對將產生n-1; 對於偶數個n值,將有n / 2這樣的對,因此循環在n上執行的平均次數為n / 2。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.