一、时间复杂度比较
O(1)<O(logn)<O(n)<O(nlogn)<O(n^2)
基本上如果超过O(n^2)那就要重新考虑代码效率了!!!
O(1)
void eat1(int n){
if(n<10)
{
printf("s时间复杂度为O(1)\n");
}
else
{
printf("s时间复杂度为O(1)\n");
}
}
O(logn)
void eat2(int n){
//每次i都是乘以2,即当2^x==n 时退出循环,那么循环次数为x=log2n 所以有O(logn)
for(int i=1; i<n; i*=2){
printf("s时间复杂度为O(logn)\n");
}
}
O(n)
void eat1(int n){
for(int i=0; i<n; i++){;
printf("s时间复杂度为O(n)\n");
}
}
O(nlogn)
void eat4(int n){
for(int i=0; i<n; i++){
for(int j=0; j<i; j=j*2){
printf("s时间复杂度为O(nlogn)\n");
}
}
O(n^2)
void eat4(int n){
for(int i=0; i<n; i++){
for(int j=0; j<i; j++){
printf("s时间复杂度为O(n^2)\n");
}
}