穷举思想
穷举法就是针对问题可能出现的结果,对其逐个进行测验并得出是否为符合要求的结果,穷举法也是许多高级算法中的某个部分。有点像高中数学里面的对问题进行分类讨论的过程中,寻找所有的情况的异曲同工之处。
两部分组成
- 系统化地枚举问题各种可能的候选解
- 检查验证每一个候选解是否满足问题的求解要求
穷举的抽象算法伪代码
百元买百兔问题
洗牌问题
问题思路
- 在1~n-1当中随机选择一个数k1,将其与第n个数互换;
- 在1~n-2当中随机选择一个属k2,将其与第n-1个数互换;
- 在第i轮之后,1~n-(i-1)当中选择一个数ki,将其与第n-(i-1)个数互换;
代码思路
- 在区间之间随机数的生成
- 交换函数
- 泛型:支持各种类型数据的“洗牌”
评论区