想问下最大语句频度和时间复杂度到底是怎么算的呢(数据结构刚入门)例如这题

第一次i = 1

第二次i = 2

第三次i = 4

第四次i = 8

……

第k次 i = 2^k

第多少次就结束循环了呢,也就是第log2(n)的时候就结束循环了。

所以最大语句频度是log2(n),时间复杂度为O(log2(n))。

频度就是执行了多少次,时间复杂度只是估计,比如两个频度为n的语句嵌套的话(比如两个for循环),时间复杂度就是n*n。

回到题目,你这题的最大语句频度是while(i<=n)这句话执行出来的,n/2向上取整,时间复杂度为O(n)