本題是關於演算法效率分析(Algorithm and performance analysis)
請分別寫出下列程式第一行(line 1)到第五行(line 5)的執行次數(frequency
count),於試卷上請標明是第幾行,次數是多少。(10 分)
void mult(int a[][n], int b[][n], int c[][n])
{
int i, j, k;
for(i = 0; i < n; i++) ........................................line 1
for(j = 0; j < n; j++) .......................................line 2
{
c[i][j] = 0; ...................................................line 3
for(k = 0; k < n; k++) ..............................line 4
c[i][j] += a[i][k] * b[k][j]; .............line 5
}
}
於下列程式,請計算指令x++;一共會執行多少次?(5 分)
for (i =0; i < n ; i ++)
for (j = i +1; j < n; j++)
x++;
請根據下列表格的數據,size是問題量(或問題大小),count是程式指令的總執
行次數,來推測程式執行的時間複雜度(time complexity),請以Big-Theta Θ 表
示之(例如:Θ(3n))。(5 分)
size
1,000
2,000
3,000
4,000
5,000
6,000
7,000
8,000
count
11,863
24,227
40,003
53,217
67,393
78,961
91,985
113,997