有人可以向我解释为什么这个问题的答案不是25,102?
对于以下代码,假设if语句在50%的时间内为真。如果是,那么会发生多少次分配操作? (不要忘记计算i和j的初始化。还记得i ++和j ++是分配。)
for (int i = 0; i < 100; i++) {
for (int j = 0; j < 100; j++) {
if (arr[j] < arr[i]) {
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
答案 0 :(得分:0)
我可以看到你是如何获得25102的,但我认为你没有正确地计算j
循环 - 它不仅仅为总数添加一个j=0
因为整个循环多次发生