基本概念
问题:需要回答的一般性提问,通常含有若干参数
问题描述:
- 定义问题参数(集合,变量,函数,序列等)
- 说明每个参数的取值范围及参数间的关系
- 定义问题的解
- 说明解满足的条件(优化目标或约束条件)
问题实例:参数的一组赋值可以得到问题的一个实例
算法:有限条指令的序列,这个指令序列确定了解决某个问题的一系列运算或操作
算法A解问题P:
- 把问题P的任何实例作为算法A的输入
- 每步计算是确定性的
- A能够在有限步结束
- 输出为该实例的正确解
基本运算:比较,加法,乘法,置指针,交换等等
常用基本运算例子:
- 排序:元素之间的比较
- 检索:被检索元素x与数组元素的比较
- 整数乘法:每位数字相乘(位乘)1次。m位和n位整数要做mn次位乘
- 矩阵乘法:每对元素乘1次。ij矩阵和jk矩阵相乘要做ijk次乘法
- 图的遍历:置1次指针
输入规模:输入串的编码长度。通常使用数组元素多少(数组问题)、调度问题的任务个数(调度问题)、图的顶点