多语言展示
当前在线:932今日阅读:126今日分享:42

巧解时间复杂度

扫遍全网,也没有一个人把时间复杂度解释特别通俗易懂的,我来给大家“俗”译一下。教大家解题技巧。
方法/步骤
1

时间复杂度的定义我就不再赘述了,但是你必须要先去读一遍,这样才不会被俗的东西带偏。

2

好了,我来给出我的解时间复杂度方法:算出代码里最频繁的代码循环多少次(此时是频度)然后三步法加工就能成功给出时间复杂度。

3

例题:第一步,找最频繁语句,这里明显是x--这句语句。第二步,算循环多少次,这里是100次。第三步,化简,100是常数写成O(1)。(所有常数均归1)

4

例题:第一步,找最频繁语句,这里明显是x++这句语句。第二步,算循环多少次,这里是n次。第三步,化简,这里是n写成O(n)。(2n、3n、n/2、n+1均写n)

5

例题:第一步,找最频繁语句,这里明显是x=2*x这句语句。第二步,算循环多少次,这里是log2n次。(2为下标)(2的log2n次方为n,这样就可以退出循环)第三步,化简,log2n是常数写成O(log2n)。

6

例题:第一步,找最频繁语句,这里明显是x++这句语句。第二步,算循环多少次,这里是n*n次。第三步,化简,n*n是常数写成O(n^2)。

7

例题:第一步,找最频繁语句,这里是x++这句语句。第二步,算循环多少次,这里是根号n次。(x=根号n时退出循环)第三步,化简,根号是常数写成O(根号n)。

注意事项
1

这是我自己总结归纳的,并不代表一定是正解,希望读者思考后取之精华。

2

学生不易,请勿转载

推荐信息