c++的时间复杂度主要哟有以下几种:
1. O(nlogn):
C++ STL中的sort函数的时间复杂度为O(nlogn)
希尔排序、堆排序、快速排序、归并排序
2.O(1):
int main() {
int a=1;//时间复杂度O(1)
return 0;
}
时间复杂度为O(1).
3.O(n):
int test(int n) {
int sum=0; //O(1)
for (int i = 0; i < n; ++i) { //O(n)
sum += i;
}
return sum;
}
以上代码中的for函数的时间复杂度为O(n).
4. O(n*n):
for(int i = 0; i < n; ++i) { //O(n^2)
for(int j = 0; j < n; ++j) {
cout <<1<<endl;
}
}
以上代码中的for函数的时间复杂度为O(n*n).
5.O(logn):
int n=8;
int i=1;
while(i<n)i*=2;
关注循环结构中的【条件表达式】i<n
i
经第1次循环后值达到2^1(<n);i
经第2次循环后值达到2^2(<n);i
经第3次循环后值达到2^3(<n);
……i
经第x次循环后值达到2^x(<n)。
令2^x = n,可得时间复杂度为O(x)=O(log2n)。
6.O(n*logn):
在O(logn)的循环外再套一层O(n)的循环即可。
欢迎来我主页:Dream SYC 的主页
谢谢!