自己在学习时间复杂的的时候搞得很懵不明所以,花了大量的时间去网上弄明白,但网上的视频和讲解听的也是云里雾里,经过长时间的沉淀,突然脑子开了窍,找到了解决方法,希望能帮助需要的人。废话不多说,直接上方法:
求时间复杂度:先找出变量值i和循环内代码执行次数t之间的函数关系,当变量值等于跳出循环值n的时候,解出t,例如:
int i=1,n;
while(i<n/2){
i=i*2;
}
次数: | 第0次 | 第1次 | 第2次 | 第3次 | 第t次 |
变量值: | i=1 | i=2 | i=4 | i=8 | i= |
找出函数关系后,当变量值等于跳出循环值的时候,也就是i=n/2时,也就是i==n/2时,解出t就是时间复杂度了。也就是。