目录
一、时间复杂度与空间复杂度:
1、时间复杂度:(通俗讲就是程序运行所花费的时间)
(1)为了方便,我们假设每一个语句块运行所消耗的时间一样,视为一个时间单元;
(2)时间复杂度的计算:
①: 忽略常数项;
②:忽略系数;
③:只保留最高项;
(3)常见的时间复杂度:
O(1) : 常数阶;
O(n) : 线性阶;
O(n²) : 平方阶;
O(logn) : 对数阶;
O(nlogn) : 线性对数阶;
O(n³) : 立方阶;
O(2ⁿ) : 指数阶;
O(n!) : 阶乘阶;
从小到大的顺序依次为 : O(1) < O(logn) < O(n) < O(nlogn) < O(n²) < O(n³) < O(2ⁿ) < O(n!)
2、空间复杂度(略)
3、了解了二查分的写法:
while(l < r)
{
int mid = (l + r) / 2;
if(a[mid] >= x) r = mid;
else l = mid + 1;
}
if(a[l] == x) cout << l << " ";
else cout << -1 << " ";
}