————为什么我的眼泪常含泪水,因为我一个算法不会。
逃不了的数据结构和算法,剩下的只有面对了
今天,3/20/2017。 开始学习数据结构和算法分析。在过去的一年时间都一直在侥幸,一直逃避。但是,该来的终归回来,该不会的还是不会,所以踏上学习数据结构与算法分析的不归路。就先从时间复杂度开始入手吧
什么是时间复杂度?
在计算机科学中,算法的时间复杂度是一个函数,它定量描述了该算法的运行时间。这是一个关于代表算法输入值的字符串的长度的函数。时间复杂度常用大O符号表述,不包括这个函数的低阶项和首项系数。
这是度娘上的解释。
我的理解:时间复杂度。分解看,1. 时间,2 复杂度。时间是指CPU处理计算机指令的时间,即一个完整的指令周期。复杂度,是指完成这个指令的时间长度或者是步骤。
计算时间复杂度攻略
1.用常数1取代运行时间中所有的加法常数
2.在修改的运行次数,保留最高项
3.如最高项存在且不是1,则去除与这个项相乘的数。
4,得到的最后结果就是最大O阶
常见的时间复杂度阶
1.常数阶
2,平方阶
3.对数阶
公式
循环时间复杂度=循环体复杂度X循环体运行次数
函数调用的时间复杂度
for(i=1;1<100:i++){
function(){
print(" nana")
}
}
这个复杂度为O(1)
for(i=1;1<100:i++){
function(){
print(i)
}
}
这个复杂度为O(i)
时间复杂度为 O(1)<O(N)<O(N*N) 时间复杂度越小越好
算法复杂度= 时间复杂度+空间复杂度