掌握时间复杂度, 编写高效代码

🙉专栏推荐:Java入门知识🙉

🙉 内容推荐:巧用抽象类与接口,打造高效Java程序(下)🙉

🐹今日诗词:昨夜星辰昨夜风,画楼西畔桂堂东🐹


⛳️点赞 ☀️收藏⭐️关注💬卑微小博主🙏

⛳️点赞 ☀️收藏⭐️关注💬卑微小博主🙏


目录

🌸思维导图🌸

 🌸一. 时间复杂度🌸

🍺(1). 一般程序时间复杂度

🍺(2). 递归时间复杂度

🍺(3). 大O的渐近表示法

🍺(4). 时间复杂度三种情况

🍺(5).空间复杂度

🌸二. 包装类🌸

🍎(1). 装箱

🍎(2). 拆箱

🌸结语+美图分享🌸


🌸思维导图🌸


 🌸一. 时间复杂度🌸

🍀概念: 程序算法粗略执行的次数

🍀常数级别:算法的执行时间和常数规模无关, 也就是说输入的数据数量、大小如何,

                       算法的执行时间都保持不变

🍺(1). 一般程序时间复杂度

🔷例如🔷

    // 请计算一下func1基本操作执行了多少次?
    void func1(int N){
        int count = 0;
        for (int i = 0; i < N ; i++) {
            for (int j = 0; j < N ; j++) {
                count++;
            }
        }
        for (int k = 0; k < 2 * N ; k++) {
            count++;
        }
        int M = 10;
        while ((M--) > 0) {
            count++;
        }
        System.out.println(count);
    }

🍺(2). 递归时间复杂度

🍀递归时间复杂度计算

🍀递归时间复杂度 = 递归次数 * 每次递归后执行的次数

🔷举例解释🔷

    // 计算阶乘递归factorial的时间复杂度?
    long factorial(int N) {
        return N < 2 ? N : factorial(N-1) * N;
    }

🍺(3). 大O的渐近表示法

🍀大O的渐近表示法

🍀三要素: 💡1. 用数字取代常数项

                  💡2. 取最高阶项

                  💡3. 除去最高项的系数

🔷例如上题🔷

🍺(4). 时间复杂度三种情况

🍀最好情况: 输入数据, 算法最小运行时间

🍀平均情况: 所有输入, 算法平均运行时间

🍀最坏情况: 输入数据, 算法最大运行时间

🔷举例解释:🔷 

💡比如猜数字(1-10): 我们最好情况一次就猜中, 最坏就第十次猜中, 平均就第5-6左右猜中

💧我们一般取最坏情况作为算法的时间复杂度,如果最坏情况下都比其他算法效率高

💧那么这个算法就是一个优秀的算法

🍁大O的渐近表示法经典练习题: 《大O的渐近表示法经典题目》

🍺(5).空间复杂度

🍀概念: 算法临时占用空间的量度

🍀一般也使用大O的渐近法表示

🍀注意: 空间复杂度不是占用多少字节, 他只是描述占用空间的量度

🔷举例🔷



🌸二. 包装类🌸

🍀作用: 将基本数据类型封装成对象

🔷 基本数据类型的包装类🔷 

🍎(1). 装箱

🍀概念: 把基本数据类型放到包装类型

🍀显示装箱: 手动调用valueOf方法装箱

🍀自动装箱: 编译器自动调用valueOf装箱

🍎(2). 拆箱

🍀概念: 将包装类型放到基本数据类型

🍀显示拆箱: 手动调用编译器Value方法拆箱

🍀自动拆箱: 编译器自动调用Value方法拆箱

🔷我们知道了装箱拆箱的概念,那么我们来看一看下面的代码🔷

public class test {
    //下列代码输出什么,为什么?
    public static void main(String[] args) {
            Integer a = 127;
            Integer b = 127;
            Integer c = 128;
            Integer d = 128;
            System.out.println(a == b);
            System.out.println(c == d);
    }
}


🌸结语+美图分享🌸

✨🎆谢谢你的阅读和耐心!祝愿你在编程的道路上取得更多的成功与喜悦!"🎆✨🎄

⭐️点赞收藏加关注,学习知识不迷路⭐️

🎉✔️💪🎉✔️💪🎉✔️💪🎉✔️💪🎉

👍😏⛳️点赞☀️收藏⭐️关注😏👍

👍😏⛳️点赞☀️收藏⭐️关注😏👍

👍😏⛳️点赞☀️收藏⭐️关注😏👍

🙆‍♂️🙆‍♂️🙆‍♂️🙆‍♂️🙆‍♂️🙆‍♂️🙆‍♂️🙆‍♂️🙆‍♂️🙆‍♂️🙆‍♂️🙆‍♂️🙆‍♂️

  • 10
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

White graces

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值