几种时间复杂度的举例:
O(1), O(n), O(logn), O(nlogn), O(), O()
O(1):
for (int i = 0; i < n; i += n/k+1){
}
其中k为常数,其时间复杂度大约是O(k),是O(1)级别的。
O(n):
for (int i = 0; i < n; i++){
}
O():
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
}
}
因为for (int j = 0; j < n; j++) 为O(n)
而for(int i = 0; i < n; i++) 嵌套包含了 for(int j = 0; j < n; j++)
近似有:
而Oj = O(n)
Oi = O(n+n+n+...+n) 共n个n相加,即
事实上Σ内i的真正取值范围是1~n,这里只是近似计算