1.1 算法
(1)计算
定义
可由一个给定计算模型机械地执行的规则或计算步骤序列称为该计算模型的一个计算
- 一个计算机程序是一个计算
- 计算可能永远不会停止
- 不是算法
(2)算法
定义
- 算法是满足下列条件的计算:
- 有穷性/终止性:有限步内必须停止
- 确定性:每一步都是严格定义和确定的动作
- 可行性:每一个动作都能够被精确地机械执行
- 输入:有一个满足给定约束条件的输入
- 函数可以没有输入
- 算法必须有输入
- 输出:满足给定约束条件地结果
- 算法的目的是求解问题
- 一个算法面向一个问题,而不是仅求解一个问题的一个或几个实例
算法的描述
-
伪代码
-
实例
Input: A[1, ..., n] = n个数 Output: A[1, ..., n] = n个sorted数 FOR j=2 To n Do key <- A[j]; i <- j-1 WHILE i>0 AND A[i]>key Do A[i+1] <- A[i]; i <- i-1; A[i+1] <- key;
(3)问题
定义
设Input和Output是两个集合。一个问题是一个关系R ⊆\subseteq⊆ Input × Output
-
Input称为问题R的输入集合
Input={ <a1,....,an>∣ai是整数} Input = \{ <a_1,....,a_n> | a_i是整数 \} Input={ <a1,....,an>∣ai是整数}- Input的每个元素称为R的一个输入
-
Output称为问题R的输出或结果集合
Output={ <b1,....,bn>∣bi是整数,且bi≤...≤bn} Output = \{ <b_1,....,b_n> | b_i是整数,且b_i \le...\le b_n\} Output={ <b1,....,bn>∣b

本文介绍了算法的基础概念,包括算法的定义、特性以及在计算机科学中的地位。算法分析包括正确性证明、复杂性分析(时间复杂性和空间复杂性),以及算法设计模式如分治法、图搜索等。讨论了计算问题的输入输出关系,并阐述了算法在解决计算问题过程中的角色。
最低0.47元/天 解锁文章
591

被折叠的 条评论
为什么被折叠?



