【数据结构与算法】算法备忘
来源:互联网 发布:windos nodejs 80端口 编辑:程序博客网 时间:2024/06/04 18:55
算法:对特定问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每条指令表示一个或者多个操作
五个特性:有穷性,确定性,可行性,输入,输出
输入输出:算法可以有0个或者多个输入,至少有一个或者多个输出。
有穷性:算法在执行有限的操作后,自动结束而不会出现死循环,并且每个步骤在可以接受的时间内完成。
确定性:算法每一步骤都有确定的含义,不会出现二义性
可行性:算法的每一步都是必须可行的,也就是说每一步都能通过执行有限次数完成。
算法设计要求:
1.正确性
2.可读性
3.健壮性
4.时间效率高和存储量低:办同样的事情 用 最少的时间,最小的存储完成。这里涉及 时间复杂度 和 空间复杂度。
算法效率度量方法:
1.事后统计法:计算运行时间进行对比
2.事前分析估算法:是 n,n2 logN等
算法的时间复杂度:
在进行算法分析时,语句总的执行次数T(n)是关于问题规模n的函数,进而分析T(n)随n的变化情况并确定T(n)的数量级。
算法的时间复杂度,也就是算法的时间量度,记作:T(n)=O(f(n)),它表示随问题规模n的增大,算法执行时间的增长率和f(n)的增长率相同,
称作算法的渐近时间复杂度,简称为时间复杂度,其中f(n)是问题规模n的某个函数。用大O标记记法成为大O记法。
推导大O阶方法:
1.用常量1取代运行时间中的所有加法常量
2.在修改后的运行次数函数中,只保留最高阶项。
3.如果最高阶项存在而且不是1,则去除这个项相乘的常数,得到的结果就是大O阶。
常数阶是O(1);
线性阶是O(n);
对数阶是O(logn);
平方阶是O(n2);
时间复杂程度:
算法的空间复杂度:
S(n)=O(f(n))
估算方法:输入数据所占空间+程序所占空间+辅助变量所占空间
阅读全文
0 0
- 【数据结构与算法】算法备忘
- 【数据结构与算法】数据结构备忘
- 【数据结构与算法】线性表备忘
- 【数据结构与算法】栈和队列 备忘
- 数据结构与算法 -- 算法
- 【数据结构与算法】浅谈数据结构与算法
- 【数据结构与算法】【Some】数据结构与算法
- 算法与数据结构-KMP算法
- 【数据结构与算法】 Dijkstra算法
- 【数据结构与算法】排序算法
- 算法与数据结构 - 贪心算法
- 算法与数据结构 - 搜索算法
- [数据结构与算法] 2,算法
- 数据结构与算法排序算法
- 【数据结构与算法】 Floyd算法
- 【数据结构与算法】Dijkstra算法
- 数据结构与算法-----排序算法
- 数据结构与算法_KMP算法
- mysql5.7.19免安装ZIP版配置过程
- Draylayout2
- Recyclerview配合okhttp
- Okhttp上传图片
- 生化危机?待解决
- 【数据结构与算法】算法备忘
- 10.15
- 电影感悟
- c语言中的链式访问
- 04 java基础语法(上)
- CanToolApp for Windows 文档的所有图片的管理
- python网络编程学习笔记(2)--TCP和UDP区别(补充)
- 切换listview和RecyclerView
- 数码相框项目