算法分析——时间复杂度

拥有回忆 提交于 2019-12-30 23:36:42

在这里插入图片描述
下面就举几个常见的时间复杂度

  1. 常数阶O(1)
    通俗地来讲,就是没有循环等复杂结构
 		int i=0;
        int j=2;
        i++;
        j++;
        int m=i+j;
  1. 对数阶O(log2n)
    在while循环里面,每次都将 i 乘以 2,乘完之后,i 距离 n 就越来越近了。假设循环x次之后,i 就大于 2 了,此时这个循环就退出了,也就是说 2 的 x 次方等于 n,那么 x = log2n也就是说当循环 log2n 次以后,这个代码就结束了
 		int i=1;
        while (i<n){
            i=i*2;
        }
  1. 线性阶O(n)
		int j=0;
        for(int i=0;i<n;i++){
            j++;
        }
  1. 线性对数阶O(nlogN)
    这可以看成是对数阶和常数阶的嵌套
		for(int m=0;m<n;m++){
            int i =1;
            while (i<n){
                i=i*2;
            }
        }
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!