連個答案都不給的考試,如同115年新竹建功高中
#include
void update(int a, int *b) {
a= a* 2;
*b = *b + 3;
}
int main() {
int x = 5, y = 10;
update(x, &y);
printf("%d %d",x, y);
return 0;
}
ANS
5 13
======================
3. 給定底下C++函式F(),以 Big-0 符號表示,該函式總體的時間複雜度為
void f(int n)
{
int x=0;
for (int i=1;i<=n;i=i+1)
for(int k=1;k<=n;k=k*2)
x=x+1;
}
ANS(google 的答案)
外層迴圈 (for i):從 執行到 ,總共執行了 次,複雜度為 。
內層迴圈 (for k):控制變數 每次以 倍數關係(k = k * 2)成長。這是一個典型的對數序列(1, 2, 4, 8... 直到 ),這是一個對數行為,執行次數log N 。
整體複雜度:將內外兩層相乘,n(log N)。
======================