您的位置:首页 > 理论基础 > 数据结构算法

【数据结构与算法】算法备忘

2017-10-15 19:36 232 查看
算法:对特定问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每条指令表示一个或者多个操作

五个特性:有穷性,确定性,可行性,输入,输出
输入输出:算法可以有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))

估算方法:输入数据所占空间+程序所占空间+辅助变量所占空间
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: