🙉专栏推荐:Java入门知识🙉
🙉 内容推荐:巧用抽象类与接口,打造高效Java程序(下)🙉
🐹今日诗词:昨夜星辰昨夜风,画楼西畔桂堂东🐹
⛳️点赞 ☀️收藏⭐️关注💬卑微小博主🙏
⛳️点赞 ☀️收藏⭐️关注💬卑微小博主🙏
目录
🍀概念: 程序算法粗略执行的次数
🍀常数级别:算法的执行时间和常数规模无关, 也就是说输入的数据数量、大小如何,
算法的执行时间都保持不变
🔷例如🔷
// 请计算一下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); }
🍀递归时间复杂度计算
🍀递归时间复杂度 = 递归次数 * 每次递归后执行的次数
🔷举例解释🔷
// 计算阶乘递归factorial的时间复杂度? long factorial(int N) { return N < 2 ? N : factorial(N-1) * N; }
🍀大O的渐近表示法
🍀三要素: 💡1. 用数字一取代常数项
💡2. 取最高阶项
💡3. 除去最高项的系数
🔷例如上题🔷
🍀最好情况: 输入数据, 算法最小运行时间
🍀平均情况: 所有输入, 算法平均运行时间
🍀最坏情况: 输入数据, 算法最大运行时间
🔷举例解释:🔷
💡比如猜数字(1-10): 我们最好情况一次就猜中, 最坏就第十次猜中, 平均就第5-6左右猜中
💧我们一般取最坏情况作为算法的时间复杂度,如果最坏情况下都比其他算法效率高
💧那么这个算法就是一个优秀的算法
🍁大O的渐近表示法经典练习题: 《大O的渐近表示法经典题目》
🍀概念: 算法临时占用空间的量度
🍀一般也使用大O的渐近法表示
🍀注意: 空间复杂度不是占用多少字节, 他只是描述占用空间的量度
🔷举例🔷
🍀作用: 将基本数据类型封装成对象
🔷 基本数据类型的包装类🔷
🍀概念: 把基本数据类型放到包装类型中
🍀显示装箱: 手动调用valueOf方法装箱
🍀自动装箱: 编译器自动调用valueOf装箱
🍀概念: 将包装类型放到基本数据类型中
🍀显示拆箱: 手动调用编译器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); } }
✨🎆谢谢你的阅读和耐心!祝愿你在编程的道路上取得更多的成功与喜悦!"🎆✨🎄
⭐️点赞收藏加关注,学习知识不迷路⭐️
🎉✔️💪🎉✔️💪🎉✔️💪🎉✔️💪🎉
👍😏⛳️点赞☀️收藏⭐️关注😏👍
👍😏⛳️点赞☀️收藏⭐️关注😏👍
👍😏⛳️点赞☀️收藏⭐️关注😏👍
🙆♂️🙆♂️🙆♂️🙆♂️🙆♂️🙆♂️🙆♂️🙆♂️🙆♂️🙆♂️🙆♂️🙆♂️🙆♂️