地特三等申論題
108年
[資訊處理] 程式語言
第 一 題
一、有一函式如下,試問其平均時間複雜度為何?(25 分)
Function A(n) {
int a = 0;
int b = 0;
for (int i = 0; i < n; i++) {
a++;
}
printf("Hello");
for (int j = 0; j < n; j++) {
for (int k = 0; k < n; k++) {
b++;
}
}
printf("World");
}
📝 此題為申論題
思路引導 VIP
看到時間複雜度的題目,先將程式碼由上而下拆解成不同的「執行區塊」(如迴圈、基本運算)。接著分別計算每個區塊執行次數與輸入變數 n 的數學關係,最後利用 Big-O 的加法規則保留最高次項即可得出結論。
🤖
AI 詳解
AI 專屬家教
【解題思路】利用 Big-O 符號的漸近分析與加法法則,分別計算函式中各區塊的執行次數,相加後取最高階項。 【詳解】 已知:可將 Function A(n) 的程式碼結構依執行順序拆解為數個區塊來計算執行次數。
▼ 還有更多解析內容