算法设计与分析

本文深入探讨了算法设计的基本原则和常见分析技巧,包括分治、动态规划和回溯法等策略。通过实例解析,揭示了算法在解决复杂问题中的核心作用,并讨论了时间复杂度和空间复杂度的概念,帮助读者提升算法思维能力。
摘要由CSDN通过智能技术生成
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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值