数据结构学习日记----2
1.算法:算法是指解决特定问题求解步骤的描述。
2.算法的特点:输入,输出,有穷性,确定性,可行性。
3.算法的设计要求:正确性,可读性,健壮性,时间效率高,储存量低。
- 解决不同的问题就需要不同的算法,而要评价一个算法的好坏我们通常会用到时间复杂度,空间复杂度。
**1. 时间复杂度:我们常用大O阶来反映时间的复杂度。
- O(1)<O(logn)<O(n)<O(n²)<O(n³)<O(n^n) <O(n!) <O(2^n)
- 大O阶的推导方法:
1.用1代替运行次数函数中所加的所有常量。
2.在修改后的函数的中只保留最高阶的项。
3.若最高项为1,则此函数的大O阶为O(1);若最高项不为1,去掉最高阶项的系数,此函数的大O阶为O(最高阶项)。
如:执行次数函数为3n²+2n+5,第一步用1代替所有常数项,原式变为3n²+2n+1;第二步只保留最高阶项,原式变为3n²;第三步去掉最高阶项的系数,原式变为n²。所以此函数的大O阶为O(n²)。
- 能放映时间复杂度的还有最坏情况和平均情况。