没有合适的资源?快使用搜索试试~ 我知道了~
Liao-Zhuolin#CV-Note#算法通关手册-笔记1
需积分: 0 1 下载量 170 浏览量
2022-07-25
14:35:16
上传
评论
收藏 10KB MD 举报
温馨提示
试读
时间复杂度(Time Complexity):在问题的输入规模为 n 的条件下,算法运行所需要花费的时间,可以记作为 T(n)。时间复杂度(Time Compl
资源推荐
资源详情
资源评论
# 算法与复杂度
* 算法(Algorithm) 就是解决问题的方法或者过程。如果我们把问题看成是函数,那么算法就是将输入转换为输出的过程。
* 数据结构(Data Structure) 是数据的计算机表示和相应的一组操作。程序(Program) 则是算法和数据结构的具体实现。
* 数据结构可以分为 「逻辑结构」 和 「物理结构」。
* 逻辑结构可分为:集合结构、线性结构、树形结构、图形结构
* 物理结构可分为:顺序存储结构、链式存储结构。
* 算法拥有 5 个基本特性:输入、输出、有穷性、确定性、可行性。
* 算法追求的目标有 5 个:正确性、可读性、健壮性、所需运行时间更少(时间复杂度更低)、占用内存空间更小(空间复杂度更低)。
* 时间复杂度(Time Complexity):在问题的输入规模为 n 的条件下,算法运行所需要花费的时间,可以记作为 T(n)。
* 时间复杂度(Time Complexity):在问题的输入规模为 n 的条件下,算法运行所需要花费的时间,可以记作为 T(n)。
* 一般含有双层嵌套,且每层循环下的语句执行次数为 n 的算法涉及平方时间复杂度。这类算法随着问题规模 n 的增大,对应计算次数呈平方关系增长。
* 阶乘时间复杂度一般出现在与「全排列」、「旅行商问题暴力解法」相关的算法中。这类算法随着问题规模 n 的增大,对应计算次数呈阶乘关系增长。
* 对数时间复杂度一般出现在「二分查找」、「分治」这种一分为二的算法中。这类算法随着问题规模 n 的增大,对应的计算次数呈对数关系增长。
* 线性对数一般出现在排序算法中,例如「快速排序」、「归并排序」、「堆排序」等。这类算法随着问题规模 n 的增大,对应的计算次数呈线性对数关系增长。
* 空间复杂度(Space Complexity):在问题的输入规模为 n 的条件下,算法所占用的空间大小,可以记作为 S(n)。一般将 算法的辅助空间 作为衡量空间复杂度的标准。
## 数组
* 「数组」 是实现线性表的顺序结构存储的基础。
* 数组在计算机中的表示,就是一片连续的存储单元。数组中的每一个数据元素都占有一定的存储单元,每个存储单元都有自己的内存地址,并且元素之间是紧密排列的。
* 计算机给一个数组分配了一组连续的存储空间,其中第一个元素开始的地址被称为 「首地址」。每个数据元素都有对应的下标索引和内存地址,计算机通过地址来访问数据元素。当计算机需要访问数组的某个元素时,会通过 「寻址公式」 计算出对应元素的内存地址,然后访问地址对应的数据元素。
* Python 中的 list 直接封装了尾部插入操作,直接调用 append 方法即可。
* 在数组第 i 个位置上插入值为 val 的元素:先检查插入下标 i 是否�
点击阅读更多
资源评论
不能汉字字母b
- 粉丝: 13
- 资源: 291
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功