![](https://csdnimg.cn/release/download_crawler_static/249772/bg1.jpg)
ACM/ICPC
ACM/ICPC
程序设计
程序设计
主讲
主讲
:
:
杜育根
杜育根
![](https://csdnimg.cn/release/download_crawler_static/249772/bg2.jpg)
数据结构与算法
数据结构与算法
z
z
算法
算法
+
+
数据结构
数据结构
=
=
程序
程序
z
z
算法及复杂性
算法及复杂性
z
z
常用数据结构
常用数据结构
z
z
试题分析
试题分析
![](https://csdnimg.cn/release/download_crawler_static/249772/bg3.jpg)
算法
算法
Algorithm
Algorithm
算法
算法
是在有限步骤内求解某一问题所使
是在有限步骤内求解某一问题所使
用的一组定义明确的规则。通俗点说,
用的一组定义明确的规则。通俗点说,
就是计算机解题的过程。在这个过程
就是计算机解题的过程。在这个过程
中,无论是形成解题思路还是编写程
中,无论是形成解题思路还是编写程
序,都是在实施某种算法。前者是推理
序,都是在实施某种算法。前者是推理
实现的算法,后者是操作实现的算法。
实现的算法,后者是操作实现的算法。
一个算法应该具有以下五个重要的特
一个算法应该具有以下五个重要的特
征:
征:
有穷性:
有穷性:
一个算法必须保证执行有限步
一个算法必须保证执行有限步
之后结束;
之后结束;
![](https://csdnimg.cn/release/download_crawler_static/249772/bg4.jpg)
伪代码
伪代码
Pseudocode
Pseudocode
z
z
伪代码
伪代码
(
(
Pseudocode
Pseudocode
)
)
是一种算法描述语
是一种算法描述语
言。使用为代码的目的是为了使被描述的
言。使用为代码的目的是为了使被描述的
算法可以容易地以任何一种编程语言
算法可以容易地以任何一种编程语言
(Pascal, C, Java, etc)
(Pascal, C, Java, etc)
实现。因此,伪代码
实现。因此,伪代码
必须结构清晰,代码简单,可读性好,并
必须结构清晰,代码简单,可读性好,并
且类似自然语言。
且类似自然语言。
![](https://csdnimg.cn/release/download_crawler_static/249772/bg5.jpg)
算法的复杂性
算法的复杂性
算法的复杂性
算法的复杂性
是算法效率的度量,是评价算法优劣的重要依
是算法效率的度量,是评价算法优劣的重要依
据。一个算法的复杂性的高低体现在运行该算法所需要的计
据。一个算法的复杂性的高低体现在运行该算法所需要的计
算机资源的多少上面,所需的资源越多,我们就说该算法的
算机资源的多少上面,所需的资源越多,我们就说该算法的
复杂性越高;反之,所需的资源越低,则该算法的复杂性越
复杂性越高;反之,所需的资源越低,则该算法的复杂性越
低。
低。
不言而喻,对于任意给定的问题,设计出复杂性尽可能底的
不言而喻,对于任意给定的问题,设计出复杂性尽可能底的
算法是我们在设计算法时追求的一个重要目标;另一方面,
算法是我们在设计算法时追求的一个重要目标;另一方面,
当给定的问题已有多种算法时,选择其中复杂性最低者,是
当给定的问题已有多种算法时,选择其中复杂性最低者,是
我们在选用算法适应遵循的一个重要准则。因此,算法的复
我们在选用算法适应遵循的一个重要准则。因此,算法的复
杂性分析对算法的设计或选用有着重要的指导意义和实用价
杂性分析对算法的设计或选用有着重要的指导意义和实用价
值。
值。