基本操作执行次数:
- T(n) = 3n:线性
void eat1(int n){
for(int i=0; i<n; i++){;
System.out.println("等待一天");
System.out.println("等待一天");
System.out.println("吃一寸面包");
}
}
- T(n) = 5logn:对数
void eat2(int n){
for(int i=1; i<n; i*=2){
System.out.println("等待一天");
System.out.println("等待一天");
System.out.println("等待一天");
System.out.println("等待一天");
System.out.println("吃一半面包");
}
}
3.T(n) = 2:常量
void eat3(int n){
System.out.println("等待一天");
System.out.println("吃一个鸡腿");
}
4.T(n) = 0.5n^2 + 0.5n:多项式
void eat4(int n){
for(int i=0; i<n; i++){
for(int j=0; j<i; j++){
System.out.println("等待一天");
}
System.out.println("吃一寸面包");
}
}
渐近时间复杂度:
1.如果运行时间是常数量级,用常数1表示;
2.只保留时间函数中的最高阶项;
3.如果最高阶项存在,则省去最高阶项前面的系数。
sort时间复杂度:nlogn