算法是实现解决程序问题的方法,衡量算法的好坏一般从时间和空调两个方面来衡量,
时间复杂度:算法执行所消耗的时间
空间复杂度:算法执行所占用的内存空间
现代计算机系统,内存的容量一般都比较大,因为相比较时间复杂度而言,关注的并不是很多,后面我们主要讨论时间复杂度。
时间复杂度是采用的: 大O符号表示法
1.常数阶O(1)
无论代码执行了多少行,只要是没有循环等复杂结构,那这个代码的时间复杂度就都是O(1)
int i=1;
i++;
2.线性阶O(n)
for(int i=0; i<n; i++)
{
int j=i;
}
3.对数阶O(logN)
int i=1;
for(; i<n; i=2*i)
{
}
4.线性对数阶O(nlogN)
为n * O(logN)
j=0;
while(j<n)
{
j=j+1;
int i=1;
for(; i<n; i=2*i)
{
}
}
5.K次方阶O(n^k)
按下面例子所示,k是多少,对应多少的for循环
for(int i =0; i<n; i++)
for(int i =0; i<n; i++)
…
{
}
比如下面的复杂度是O(m*n)
for(int i =0; i<m; i++)
for(int i =0; i<n; i++) {
}