《数据结构》递归.ppt
不断重复以上过程,直到以下三种情况出现: (1)如果当前需要选择的物品重量总和为0,说明搜索已经成功,算法结束; (2)如果当前需要选择的物品重量总和已经小于w1,说明搜索失败,算法结束; (3)若当前被考虑的选择物品对象为w0(w0不存在),说明搜索失败,算法结束。 简单背包问题的递归实现过程见算法5.9。 下面考虑简单背包问题非递归算法的实现。仍然假设物品的重量按从小到大的顺序存放于数组w中,并且选择物品时总是优先考虑重量大的物品。 由于简单背包问题的求解明显带有试探性,因此该问题属于复杂递归问题,在实现过程中必须借助于堆栈来记录回溯点。于是我们定义一个栈stack,每当试着选择一件物品,就设置一个回溯点,将它的重量和编号压入栈中;而一旦发现它被选择的可能性不存在,则将它出栈,同时通过其编号取它前面的一个物品作为当前考虑的对象;如果求解过程中遇到无法再求解下去需要回溯的情形,但此时栈已为空,则说明该背包问题无解,算法的执行以失败而告终;若被选择物品的重量总和恰巧与s的值相等,则求解成功,算法结束。简单背包问题的非递归实现过程见算法5.10。 例9 设计一个递归函数,将一个正整数n转换成字符串。例如,若n=456,则函数输出的结果为“456”。n的位数不确定,可以为任意位数的整数。 void convert(int n) { in
您可能关注的文档
- 《基因的显性和隐性》演示课件.ppt
- 《基本法(版)宣导片B版终稿.ppt
- 《基础数学》教学大纲.doc
- 《声律启蒙》(三).ppt
- 《声律启蒙》(二).ppt
- 《大学物理Ⅱ》期末考试复习精讲PPT《振动与波动》.ppt
- 《央行学,》货币政策概述.ppt
- 《奇妙的克隆》..ppt
- 《奇妙的克隆》3.ppt
- 《奇妙的克隆》优秀课件.ppt
- 2026年度太原幼儿师范高等专科学校单招《数学》全真模拟模拟题附参考答案详解(完整版).docx
- 2026年度太原幼儿师范高等专科学校《英语》单招模拟试题必考附答案详解.docx
- 2026年四川幼儿师范高等专科学校单招职业适应性考试题库及答案详解(典优).docx
- 2026年四川幼儿师范高等专科学校单招职业适应性考试题库及答案详解(必刷).docx
- 2026年四川幼儿师范高等专科学校单招职业适应性考试题库及答案详解(历年真题).docx
- 2026年度太原幼儿师范高等专科学校《数学》单招高频难、易错点题含答案详解(精练).docx
- 2026年度太原幼儿师范高等专科学校单招《数学》高分题库(全优)附答案详解.docx
- 2026年度太原城市职业技术学院单招《英语》题库试题(突破训练)附答案详解.docx
- 2026年四川幼儿师范高等专科学校单招职业适应性考试题库及答案详解(全国通用).docx
- 2026年四川幼儿师范高等专科学校单招职业适应性考试题库及答案详解(各地真题).docx
原创力文档

文档评论(0)