1
第二章 算法概述(下)
第二章 算法概述(下)
2.3 常用算法简介
2.3.1 枚举算法
2.3.2 迭代算法
2.3.3 贪心算法
注:课程安排上,建议这部分内容放到第四章后
再深入讲解。
2
枚举法就是按问题本身的性质,一一列举出该问
题所有可能的解,并在逐一列举的过程中,检验
每个可能解是否真正满足问题所求。若是则采纳
这个解,否则抛弃它。
【例 2-3-1 】.求 1-1000 中,能被 3 整除的数。
算法:
( 1 )从 1-1000 中一一列举,这是一个循环结构
( 2 )在循环中对每个数进行检验:
凡是能被 3 整除的数,打印输出,否则继续
下一个数。
2.3.1 枚举算法
3
枚举法的基本思想
根据问题描述和相关的知识,能为该问题确定
一个大概的解空间范围。
枚举法就是对该解空间范围内的众多候选解按
某种顺序进行逐一枚举和检验,直到找到一个
或全部符合条件的解为止。
计算机程序实现枚举算法的基本方法是:用循
环结构实现一一列举的过程,用分支结构实现
检验的过程。
4
枚举法的总体框架
枚举法一般使用循环结构来实现,其框架如下:
设解的个数 n 初始为 0;
循环 ( 枚举每一可能解 ) :
若 ( 该解法满足约束 ) :
输出这个解 ;
解的数量 n 加 1;
5