0
点赞
收藏
分享

微信扫一扫

数据结构之时间复杂度

盖码范 2022-01-27 阅读 76
数据结构

(数据结构)时间复杂度

时间复杂度是衡量一个算法好坏的标准,按照我的理解就是运行效率,运行时候的内存占比和运行时间。
比如一根10寸木棍,每3天被折去1寸,折掉整个木棍需要多少天?
答案是:3✖️10=30天。
假如木棍为n寸。
可以表达为:3✖️n=3n。
时间表达为:T(n)=3n.
而时间复杂度表达为O(n),那么如何计算时间复杂度呢?
三个计算标准:
1.如果运行时间为常量,用常数1表示。
2.只保留时间函数的最高阶项。
3.如果最高阶存在,那么去掉最高阶前面的系数。

void eat1(int n){
    for(int i=0; i<n; i++){;
        System.out.println("等待一天");
        System.out.println("等待一天");
        System.out.println("吃一寸木棍");
    }
}

那么时间表达为:T(n)=3n,所以时间复杂度为:O(n)


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("吃一半面包");
   }
}

那么时间表达为:T(n)=5log(2)n,所以时间复杂度为:O(log(2)n),
O(n)>O(log(2)n)

举报

相关推荐

0 条评论