-
用法
1.忽略常数项。
2.忽略系数。
3.只保留最高项。
-
用途
1.判断做题时是否会TLE。
2.推算算法(暂时不学)。
常见的时空复杂度:从小到大依次是:O(1)(常数阶)<O(logn)(对数阶)<O(n)(线性阶)<O(nlogn)(线性对数阶)<O(n*n)(平方阶)<O(n*n*n)(立方阶)<O(2*2*2(n个2相乘))(指数阶)<O(n!)(阶乘阶)
1.有循环
1.1单层循环:直接看循环次数
1.2多层循环:直接把每层循环次数相乘即可
2.无循环 O(1)
数组命名方式:const int N=1000010;
int a[N];
查找一个数出现的第一个下标 暴力O(n) 正解:二分查找O(logn)
int x;
cin>>x;(带查找的数)
int l=1,r=n;
int mid=(l+r)>>1;(取中间点mid=(l+r)/2)
if(a[mid]>=x) r=mid;
else l=mid+1;