Time 该算法的时间复杂度,主要针对第4行如何确定 void程序B(int n){ 长prod=1; 对于(int c=1;c
如果你没有参加考试,而且时间很充裕,我总是建议你尝试一些数字:Time 该算法的时间复杂度,主要针对第4行如何确定 void程序B(int n){ 长prod=1; 对于(int c=1;c,time,time-complexity,complexity-theory,Time,Time Complexity,Complexity Theory,如果你没有参加考试,而且时间很充裕,我总是建议你尝试一些数字: void programB(int n) { long prod = 1; for (int c=1;c<n;c=c*3) prod = prod * c; 正如你所看到的,迭代次数不仅少于n^3,而且远远少于n。基本上,你可以检查在这个循环中,你可以在n内乘以3的次数,这是我的提示。如果你不是坐在测试中,而且时间很充裕,我总是建议你尝试一些数字: void programB(int n) {
void programB(int n) {
long prod = 1;
for (int c=1;c<n;c=c*3)
prod = prod * c;
正如你所看到的,迭代次数不仅少于
n^3
,而且远远少于n
。基本上,你可以检查在这个循环中,你可以在n
内乘以3的次数,这是我的提示。如果你不是坐在测试中,而且时间很充裕,我总是建议你尝试一些数字:
void programB(int n) {
long prod = 1;
for (int c=1;c<n;c=c*3)
prod = prod * c;
正如您所看到的,迭代次数不仅少于n^3
,而且远远少于n
。基本上,您可以检查在这个循环中,您可以在n
内乘以3的次数,这是我的提示。如果您有
n=10:
c = 1, 3, 9
n=20:
c = 1,3,9
n=30:
c=1,3,9,27
对于每个n
事物,它贯穿n
事物,给你O(n^2)
要获得n^3,您需要另一个for循环:
void programB(int n) {
long prod = 1;
for (int c=1;c<=n;c=c+1)
for (int c=1;c<=n;c=c+1)
prod = prod * c;
void程序B(int n){
长prod=1;
对于(int c=1;c如果
n=10:
c = 1, 3, 9
n=20:
c = 1,3,9
n=30:
c=1,3,9,27
对于每个n
事物,它贯穿n
事物,给你O(n^2)
要获得n^3,您需要另一个for循环:
void programB(int n) {
long prod = 1;
for (int c=1;c<=n;c=c+1)
for (int c=1;c<=n;c=c+1)
prod = prod * c;
void程序B(int n){
长prod=1;
for(int c=1;c此for循环的时间复杂度为logn基a
void programB(int n) {
long prod = 1;
for (int c=1;c<=n;c=c+1)
for (int c=1;c<=n;c=c+1)
for (int c=1;c<=n;c=c+1)
prod = prod * c;
intn,a;
for(int c=1;c此for循环的时间复杂度为logn基a
void programB(int n) {
long prod = 1;
for (int c=1;c<=n;c=c+1)
for (int c=1;c<=n;c=c+1)
for (int c=1;c<=n;c=c+1)
prod = prod * c;
intn,a;
对于(int c=1;cI认为“顺序仍然是O(n)”是错误的。看看我的答案。对于n=30
,例如,你预测了10次迭代。如果n
,差异只会变得更大。对于n=300
,你将有6次迭代,而不是100次。这是log n base 3Yep-没有注意。@Manny Nice Manny。我认为“但订单仍然是O(n)“是错误的。看看我的答案。例如,对于n=30
,你预测了10次迭代。如果n
,差异只会变得更大。对于n=300
,你将有6次迭代,而不是100次。是log n base 3Yep-没有注意。@Manny Nice Manny。对不起,我刚从eclipse复制了。现在编辑。这个好吗?:-)对不起,我刚从eclipse中复制。正在编辑。这好吗?:-)