算法设计与分析
Posted enlyhua
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法设计与分析相关的知识,希望对你有一定的参考价值。
1.算法及基础知识
1.算法的特性
1.输入
2.输出
3.确定性
4.有限性
5.可行性
2.算法分析
算法的复杂度指的是算法在运行过程中所需要的计算机资源的量,算法分析就是对该量的多少进行分析。
3.时间复杂性
是对算法运行时间长短的度量。分为事后统计法和事前分析估算法。
4.空间复杂性
是对一个算法在运行过程中所占用存储空间大小的度量。主要因素有:
1.存储算法本身所占用的存储空间
2.算法的输入输出所占用的空间
3.算法在运行过程中所需辅助变量占用的存储空间
O(1) : 常数时间复杂度
O(n),O(n^2),O(n^3) : 多项式时间复杂度
O(2^n),O(n!)和O(n^n) : 指数阶时间复杂度
O(nlogn),O(logn) : 对数时间复杂度
O(1) < O(logn) < O(n) < O(nlogn) < O(n^2) < O(n^3) < O(2^n) < O(n!) < O(n^n)
5.递归
子程序(或函数)直接调用自己或通过一系列调用语句间接调用自己,称为递归。步骤:
1.分析问题,寻找递归关系
2.找出停止条件
3.设计递归算法,确定参数,即构建递归体
6.基本的数据结构
1.顺序表
2.链表
3.栈
4.队列
5.树
6.图
2.贪心算法
1.贪心算法的基本思想
贪心法是一种稳扎稳打的算法,它从问题的某一初始解出发,在每一个阶段都根据贪心策略来做出当前最优的决策,逐步逼近给定的目标,尽可能快的求得更好的解。当达到算法中的某一步不能再继续前进时,算法终止。贪心法可以理解为逐步的局部最优,达到最终的全局最优。
1.从算法的思想中,很容易得到的结论:
a) 每个阶段面临选择时,贪心算法都做出对眼前最有利的选择,不考虑该选择对将来是否有影响。
b
以上是关于算法设计与分析的主要内容,如果未能解决你的问题,请参考以下文章