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

news2025/1/22 12:34:24
White graces:个人主页

🙉专栏推荐: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);
    }
}


🌸结语+美图分享🌸

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

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

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

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

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1007171.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【多线程】线程池 详解

线程池 详解 1. 线程池是什么2. 标准库中的线程池3. 实现线程池4. 面试题 1. 线程池是什么 虽然线程的创建和销毁的开销比较小, 但还是有的, 如果频繁的创建和销毁线程, 开销还是比较大的.解决: 线程池或者协程, 本文主讲线程池. 线程池: 把线程提前创建好, 放到池子里, 后面…

黑马 小兔鲜儿 uniapp 小程序开发- 分类模块- day04

黑马 小兔鲜儿 uniapp 小程序开发- 推荐模块- day03_软工菜鸡的博客-CSDN博客 本课程是全网首套用 vue3 加 TS 写的 uniapp 项目&#xff0c; 里面大量封装自己的组件库&#xff0c;课程从 uni-app 基础入手&#xff0c;按照9大电商业务模块逐步实现完整的电商购物流程业务&am…

技术人员应该使用那种搜索引擎?

built-in.o是Linux内核中的组件 下面是三种主流搜索引擎的搜索结果&#xff0c;请参考&#xff0c;一切尽在不言中。

CSS - 快速实现悬浮吸顶,当页面滑动一定距离时固定吸附在顶部(position: sticky)

效果图 如下图所示&#xff0c;利用 position: sticky 属性轻松实现。 示例代码 新建一个 *.html 文件&#xff0c;一键复制运行起来。 <body><section class"content"><div class"item">我是悬浮吸顶区域</div><h1>我是…

【leetcode 力扣刷题】栈和队列的基础知识 + 栈的经典应用—匹配

栈和队列的基础知识 栈的经典应用—匹配 栈和队列基础知识232. 用栈实现队列225. 用队列实现栈 20. 有效的括号1047. 删除字符串中的所有相邻重复项 栈和队列基础知识 数据结构课程介绍线性结构的时候&#xff0c;介绍有线性表、链表、栈和队列。线性表&#xff0c;比如array…

室内探索无人机,解决复杂环境下的任务挑战!

前言 室内探索无人机是一种专为在室内环境中进行任务的无人机系统。相比传统的人员部署&#xff0c;室内探索无人机具有更高的灵活性和机动性&#xff0c;能够在复杂的室内环境中执行任务&#xff0c;用于未知环境的探索和特定目标的搜索。 为完成无人机室内搜索与识别等复杂…

无缝数据传输:StreamSet安装部署的最佳实践

文章目录 概要安装方法尝试安装部署方案1. 下载datacollector镜像2. 启动容器3. 访问streamsets小结 概要 StreamSets是一款流数据集成平台&#xff0c;旨在帮助用户轻松地收集、处理和传输大规模数据流。它提供了直观的界面和强大的功能&#xff0c;可用于实时数据流的提取、…

无线测温系统在运行时怎么判断配电设备出现故障?

现如今&#xff0c;电力测温方面使用无线测温系统的使用范围越来越大&#xff0c;比较熟悉的人都了解&#xff0c;传统的温度测量方式周期长、施工复杂&#xff0c;效率低&#xff0c;不便于管理&#xff0c;发生故障时要耗费大量的人力物理排查和重新铺设线缆。而在特定场合下…

若依+lodop+jasperreports+ireport 设计打印票据格式(一)

若依lodopjasperreportsireport 设计打印票据格式 一、设计表格 官网下载ireport5.6&#xff0c;解压安装&#xff0c;jdk 1.7适配ireport5.6&#xff0c;jdk1.8不适配 安装好jdk1.7(不用配置path&#xff0c;安装好就行)&#xff0c;进入ireport5.6安装目录&#xff0c;找到…

异步FIFO设计的仿真与综合技术(2)

概述 本文主体翻译自C. E. Cummings and S. Design, “Simulation and Synthesis Techniques for Asynchronous FIFO Design 一文&#xff0c;添加了笔者的个人理解与注释&#xff0c;文中蓝色部分为笔者注或意译。前文链接&#xff1a;异步FIFO设计的仿真与综合技术&#xff0…

模态分析的概念。C++减振器设计。

一、说明 模态分析是工程和物理学中用于研究系统或结构动态特性的技术。它涉及分析系统的振动或振荡的自然模式以及相应的频率、阻尼系数和振型。 在模态分析中&#xff0c;所研究的系统通常表示为一组质量、刚度和阻尼元件&#xff08;在下面的文章中忽略了阻尼&#xff09;。…

ARTS 打卡 第一周,初试ARTS

前言 认识三掌柜的想必都知道&#xff0c;我持续创作技术博客已经有6年时间了&#xff0c;固定每个月发布不少于6篇博文。同时&#xff0c;自己作为一名热爱分享的开发者&#xff0c;像ARTS这样的活动自然少不了我。由于我是打算挤在一起分享&#xff0c;之前都是做了本地文档记…

大数据Flink(七十九):SQL 的容错(Checkpoint)

文章目录 SQL 的容错(Checkpoint) 一、Checkpoint介绍

华为云云耀云服务器L实例评测|云耀云服务器L实例部署SpaceHuggers网页小游戏

华为云云耀云服务器L实例评测&#xff5c;云云耀云服务器L实例部署SpaceHuggers网页小游戏 一、云耀云服务器L实例介绍1.1 云耀云服务器L实例简介1.2 云耀云服务器L实例特点 二、SpaceHuggers小游戏介绍2.1 SpaceHuggers简介2.2 SpaceHuggers游戏玩法 三、实践环境介绍3.1 本次…

在UOS/Deepin下安装 Python 3.11.5 图文详解

01 先把操作系统更新一下 在开始菜单中&#xff0c;找到“终端”&#xff0c;点击启动&#xff0c;并依次输入以下两条命令即可&#xff1a; sudo apt update sudo apt upgrade 特别说明&#xff1a;Uos/Deepin 系统&#xff0c;要先进入“开发者模式”才行。“ 设置 — 通用…

如何用Polygon ID来证明你不是机器人?

1. 引言 喜剧演员约翰穆拉尼在最近的一个单口相声特辑中说&#xff1a;“世界是由机器人管理的&#xff0c;我们一天中的大部分时间都在告诉他们&#xff0c;我们不是一个仅仅登录并查看自己东西的机器人。” 这种经历很常见&#xff0c;从乏味的&#xff08;“找到所有的停车…

软件设计师--考点小总结

成绩展示 在这里插入图片描述 口诀篇 普密网–【图算法,普利姆算法,适合密网,所以与边无光;另外一个图算法就是有关了】 D-AES, 56-128–【DES,AES是对称加密的,而56就是对称加密的算法位数(三重DES,是112,恰好是56倍数),128则是非对称的位数】 排序 快一样,堆占1,…

入行IC| 数字IC设计和验证选哪个好?

很多初入IC行业的新人不知道选择验证还是设计&#xff0c;下面IC修真院就从技能&#xff0c;门槛等方面来为大家分析一下。 数字前端设计工程师是什么&#xff1f; 集成电路设计&#xff08;Integrated Circuit&#xff0c;简称IC&#xff09;一般分为数字IC设计、模拟IC设计…

macOS - 使用VLC

文章目录 关于 VLC安装查看帮助流媒体 MRL 语法:URL 语法:主程序 (core)音频视频截图:窗口属性: 子画面屏幕显示&#xff08;OSD&#xff09;:字幕:覆盖:轨道设置:播放控制:默认设备:高级: 输入播放列表性能选项: 热键跳跃大小: 关于 VLC VLC media player VLC 是一款自由、开…

5个鲜有人知的爬虫技巧

几点鲜有人知的爬虫技巧 技巧一 换个角度&#xff0c;解锁新姿势 在爬取某些 web 网站的时候&#xff0c;被各种反爬弄得哭天喊地。 什么几把 css 字体加密&#xff0c;什么几把 js 的 MD5 等&#xff0c;各种乱七八糟的加密&#xff0c;什么各种飞的验证 这时候&#xff0…