| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 数据结构与算法 -> #数据结构初阶(Ⅰ)-复杂度 -> 正文阅读 |
|
[数据结构与算法]#数据结构初阶(Ⅰ)-复杂度 |
目录 引:
????????了解完算法与数据结构的定义,那么咱们开始进一步学习。比起实际应用的程序,初识C语言篇中的代码不过星与皓月之别。不过也恭喜你,学完C语言,你成功拿到了正式学习编程的门票!此,祝你好运! 一、时间复杂度与空间复杂度1.算法效率????????算法效率分析分为两类:一为时间效率,二为空间效率。 ????????时间效率为时间复杂度,主要衡量一个算法的运行速度;而空间效率即空间复杂度,主要衡量一个算法所需存储空间的量度。当然,随着近年来计算机的快速发展,计算机的存储空间已经达到了很高的程度,所以在一定程度上,空间复杂度不再需要特别关注。 ? ? ? ? 接下来讲解两种复杂度主要就通过各个实例来让大家认识了解不同类型的复杂度的计算。
2.时间复杂度2.1 时间复杂度的概念????????时间复杂度的定义:一个算法所花费的时间与其中语句的执行次数成正比例,算法中的基本操作的执行次数,就为算法的时间复杂度。
?2.2 时间复杂度的计算代码1 _ 1,时间复杂度计算:
Func执行的基本操作次数: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? f(n) = n^2 + 2*n + 10
接下来是几个例子。 例1 _ 1,时间复杂度计算1:
Func1执行的基本操作次数: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? f( n ) = 2*n + 10
例1 _ 2 ,时间复杂度的计算2:
Func2执行的基本操作次数:? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? f( n ) = m + n
代码1 _? 3,时间复杂度的计算3:
Func3执行的基本操作次数:? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? f( n ) = 100
例1 _? 4,时间复杂度的计算4:
执行的基本操作次数:? ????????????????????????????????最好情况:1次找到 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 最坏情况:n次找到 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 平均情况:n/2次找到
例1 _? 5,时间复杂度的计算5:
执行的基本操作次数:? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? f( n ) = n-1 + n-2 + n-3 +...+ 1
例 1 _? 6,时间复杂度的计算6:
执行的基本操作次数:?? ? ? ? ? ? ????????????????????????????????最好情况:1次找到 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 最坏情况:log (2)(n)次(假设找了x次,则过程中除以了x个2,故2^x=N) 例 1 _? 7,时间复杂度的计算7:
执行的基本操作次数: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 递归算法的时间复杂度=递归次数*每次递归函数中的次数
例1 _ 8,时间复杂度的计算8:
执行的基本操作次数:(如图1) ? ? ? ? ?则f( n ) = 2^0 + 2^1 + ... + 2^(n-1)
?2.空间复杂度2.1 空间复杂度的概念????????空间复杂度是对一个算法在运行过程中临时占用存储空间大小的量度 。空间复杂度不是程序占用了多少 bytes的空间,因为这个也没太大意义,所以空间复杂度算的是变量的个数。空间复杂度计算规则基本跟实践 复杂度类似,也使用大O渐进表示法。
2.2 空间复杂度的实例例2 _ 1,时间复杂度的计算1:
例2 _ 2,时间复杂度的计算2:
例2 _ 3,时间复杂度的计算3:
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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/26 15:25:29- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |