对这个算法中的语句频度有一些疑问,第一句for语句教材上写的语句频度为n+1,我听网课的时候上面讲的原因是,第一个for语句执行了n次,还要再执行一次来判断这个for语句是不是能再执行,所以为n+1次,那么第二个for语句为什么不用每次执行的时候判断一次这个for语句能不能执行呢?那他的语句频度就应该为(n+1)(n+1)了啊,为什么是n(n+1),下面还有一个for语句频度为n方*(n+1),那个也是按照for语句执行完n次再判断一次是否能执行,为(n+1)次,这几个for语句其实除了变量不一样,别的都一样,但是为什么有的是n次,有的是n+1次呢?
因为第二个for循环在第一个for循环之内,第一个for循环的执行次数是n,第n+1次只判断,不执行,所以第二个for循环在第一个for循环内的实际执行次数是n;第二个for循环本身的频度是n+1(执行n次,第n+1次只判断,不执行),所以它的总频度是n*(n+1)
第二个for确实有判断啊,所以是n+1啊,前面那个n是第一个for里面的执行次数,第一个for最后一次判断能不能进入循环里面,因为不能,所以第二个for并没有执行到,所以前面的n就是这个意思,后面的n+1你已经明白了。你找个数代进去算一算估计都能明白了
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!