算法的复杂度

一、时间复杂度

算法的复杂度

logN的时间复杂度的来源:

while(i<num)
    i = i * 2;
//i*2*2*2*2*2......一共有log2N个2相乘,log2(8) = 3,所以要乘到8相当于有3个即log2(8)个2相乘。

乘就是嵌套

二、空间复杂度

int类型是4个字节32位

一个变量的空间复杂度是1,数组等容器的空间复杂度是n。

要注意!递归会用到递归栈stack来保存信息,这是空间复杂度(即使没有用到变量)也是n

常用的空间复杂度还有n^2

logN和NlogN的空间复杂度不常用。

三、折中

时间和空间只能有一个达到最好,面试的时候要和面试官说清楚。

最好的情况是分别把时间最好和空间最好的算法都告诉面试官。

工作的时候通常是用空间换时间。

上一篇:决策树信息增益|信息增益比率|基尼指数实例


下一篇:大数据漫游之决策树(上)