算法设计与分析

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

以上是关于算法设计与分析的主要内容,如果未能解决你的问题,请参考以下文章

算法分析与设计论文

案例分析:设计模式与代码的结构特性

案例分析:设计模式与代码的结构特性

案例分析:设计模式与代码的结构特性

南大算法设计与分析课程复习笔记

计算机算法设计与分析(第5版)PDF