| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 数据结构与算法 -> 【数据结构】初识集合框架、时间和空间复杂度 -> 正文阅读 |
|
[数据结构与算法]【数据结构】初识集合框架、时间和空间复杂度 |
1.1.集合框架简介官方教程 1.2. 数据结构数据结构是计算机存储和组织数据的方式,互相之间存在一种或多种特定关系的数据元素的集合。
注释:
1.3. 数组和集合的区别数组和集合的区别:
2. 时间和空间复杂度2.1 算法效率算法(Algorithm):就是定义良好的计算过程,他取一个或一组的值为输入,并产生出一个或一组值作为输出。简单来说算法就是一系列的计算步骤,用来将输入数据转化成输出结果,而算法效率就是根据每一条语句执行的次数和产生的空间大小来估算出一个程序的效率。
2.2 时间复杂度时间复杂度说一个数学函数,一个算法所花费的时间与程序中语句的执行次数成正比,我们编译的算法基本操作次数,为算法的时间复杂度。 大O渐进表示法
实际上我们只需要大概的执行次数,那么我们应该用
使用大O阶的渐进表示法后,func()函数的时间复杂度为:O(N2)。
在一般情况下关注的说算法最坏的运行情况,所以数组查找一个元素的时间复杂度为O(N)。
上面从上至下依次的时间复杂度越来越大,执行的效率越来越低 时间复杂度练习题
解题:实例1基本操作执行了2N+10次,通过推导大O阶方法知道,时间复杂度为 O(N)
解题: 实例2基本操作执行了M+N次,有两个未知数M和N,时间复杂度为 O(N+M)
解题:实例3基本操作执行了100次,通过推导大O阶方法,时间复杂度为 O(1)。
**解题:*实例4基本操作执行最好N次,最坏执行了(N(N-1))/2次,通过推导大O阶方法+时间复杂度一般看最坏,时间复杂度为 O(N2)
解题: 实例5基本操作执行最好1次,最坏 次
log
?
2
N
\log_2N
log2?N,时间复杂度为 O(
log
?
2
N
\log_2N
log2?N)
解题: 实例6通过计算分析发现基本操作递归了N次,时间复杂度为O(N)。
解题: 实例7通过计算分析发现基本操作递归了2N次,时间复杂度为O(2N )。(建议画图递归栈帧的二叉树理解) 3.时间复杂度时间复杂度表示的说临时占用存储空间大小的量度。也可以使用大O的渐进表示法。
时间复杂度O(1):
时间复杂度O(N):动态开辟了N个空间,空间复杂度为 O(N)
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 20:29:26- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |