1.复杂度
如何判断一个算法的好坏?
可根据算法的复杂度来判断,复杂度可以分为:时间复杂度、空间复杂度
1.1时间复杂度
时间复杂度在本质上其实是一种数学函数,实际上是一种估算,与硬件无关,
1.1.1大O的渐进表示法
内核用到极限抓大头的方法,如果是未知量,则看影响未知量的大小最大的数,如O(N^2+N)这可近似为O(N^2),而若N为常数则为O(1);此时O(1)并非是1次,而是常数次,无论是100或者10000000都是常数次;
1.1.2时间复杂度的取值
如果结果未知,时间复杂度取最坏的结果。
注意:时间复杂度的计算不能光看代码中的循环,要看思想灵活计算
1.2空间复杂度
通常不重要,与程序占用空间有关系,一般不会超过O(N)