目录
算法
算法是任何良定义的计算过程,该过程取某个值或者值集作为输入并产生某个值或者值集作为输出。
其是求解良说明的计算问题的工具,问题说明了输入输出的关系,算法是实现此关系的计算过程。
例子:排序问题1。
若对于每一个输出实例算法都以正确的输出停机(停止),则称算法是正确的(目前可能不少最优化算法都是不正确的?)不正确的算法对于一些输出实例可能不停机或者以不正确的回答停机。
算法解决的问题实例:算法导论P4。
算法问题共有特征:
- 存在多余一个候选解。候选解可能不满足输出条件或者不是最优解。
- 存在实际应用。
数据结构
是一种存储和组织数据的方式,旨在便于访问和修改。没有一种单一的数据结构对所有的用途均有效。所以要辨明数据结构的优势和局限。
技术
一个问题可能没有已知的算法能够解决。所以,重要的是算法设计与分析的技术,以自行设计算法,证明其正确性和理解其效率。
难题(hard问题,NP问题)
有一些问题目前没有有效解法(尤其是多项式时间内),这个会在后面叙述。
并行性
CPU每秒能做的计算式有限的,为了克服这种问题,目前的核心是多核的,是由多个单一的处理器组合而成,他们之间的运算时相互独立的,但是可以相互通信。算法为适应这种核心,需要作出相应改变。
作为一种技术的算法
计算机中的资源时有限的,包括计算、存储资源等。故要研究算法效率等问题。
效率
算法效率实例:算法导论P6。
算法效率往往和输入规模相关,故常用问题(输入)规模来表示其效率。之后会详细阐述。
算法与其他技术
算法的影响范围相当广泛,算法的提升可能影响看起来并不相关的应用。这是由于算法可能是一些应用的基石或重要组件。
算法的提升对大规模问题影响巨大。目前,大规模问题正在增加。
第一章结束。
- 算法导论P3. ↩