看板 C_and_CPP 關於我們 聯絡資訊
( *[1m *[m 為色碼,可以按 Ctrl+V 預覽會顯示的顏色 ) ( 未必需要依照此格式,文章條理清楚即可 ) 遇到的問題: (題意請描述清楚) (a) for(i=0;i<n;i++) for(j=0;j<n;j++) a[i][j]=b[i][j]+c[i][j]; (b) for(i=0;i<n;i++) for(j=0;j<n;j++) for(k=a[i][j]=0;k<n;k++) a[i][j]+=b[i][k]*c[k][j]; (c) sum = 0; for( i = 1; i < n; i++) { for(j = 1; j < i*i; j++) { sum++; for( k = 0; k < j; k++) sum++; } } (d) float rsum(float list[], int n) { if(n) return rsum(list, n-1)+ list[n-1]; return list[0]; } (e) sum=0; for(k=1;k<=n;k*=3) for(j=1;j<=n;j++) sum++; (f) sum=0; for(k=1;k<=n*n;k*=5) for(j=1;j<=n;j++) sum++; 希望得到的正確結果: 我的答案依序是 a)N平方 b)不太懂,懇請告知並解釋一下 c)同B d)N! e)N平方/3 f)N平方/5 希望可以幫我看對不對,如有錯可否告知想法,感激不盡 程式跑出來的錯誤結果: 開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux) 有問題的code: (請善用置底文標色功能) 補充說明: -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.42.163.225
VictorTom:b) k=a[i][j]=0, 啊所以k還是從0~n-1啊, 所以時間複雜度 03/22 00:36
VictorTom: 不就是 O(n^3) 這樣?? 03/22 00:37
VictorTom:關於e/f, 還沒看內容, 但是1/3或1/5這種常數項, 在算O 03/22 00:37
VictorTom:時是可以去掉的, 所以你的寫法等同於 O(N^2) //N平方@@" 03/22 00:38
kenboy99999: 所以E 跟F算是相同的? 那C的部分呢? 03/22 00:39
VictorTom:上面寫了這麼多, 看起來沒用了, 因為你e/f應該是錯的orz 03/22 00:40
conanist:資結第一章看一下N! N^X N LOG N 大溉這些 一個迴圈是N 03/22 01:07