五大常用算法-动态规划,分治,递归,贪心,回溯
2021-11-03 02:01:45 62KB 算法
1
装载问题描述如下:有一批共n个集装箱要装上载重量为c的轮船,其中集装箱i的重量为wi。找出一种最优装载方案,将轮船尽可能装满,即在装载体积不受限制的情况下,将尽可能多的集装箱装上轮船。
2021-11-03 00:10:47 1KB 回溯法 C++
1
递归法和回溯法文.pdf
2021-11-02 15:05:08 49KB
回溯算法1.概念2.基本思想3.用回溯法解题的一般步骤:4. 实例:解决N皇后问题 1.概念 回溯算法实际上一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就“回溯”返回,尝试别的路径。 回溯法是一种选优搜索法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法,而满足回溯条件的某个状态的点称为“回溯点”。 许多复杂的,规模较大的问题都可以使用回溯法,有“通用解题方法”的美称。 2.基本思想 在包含问题的所有解的解空间树中,按照深度优先搜索的策略,从根结点出发深度探
2021-10-31 20:58:57 116KB 回溯算法 算法
1
人工智能中N皇后问题回溯法爬山算法的实现及性能分析。包含源代码和分析数据。
2021-10-31 19:40:25 304KB 人工智能 N皇后问题 回溯法 爬山法
1
课程的随堂作业,C语言的,用dev就能运行,萌新代码,勿喷,仅仅帮助不想写作业的朋友方便一下,反正老师也不会仔细检查的
2021-10-31 11:24:14 2KB C语言
1
C语言分治算法求解30枚银币中的某枚假币,简单而言,30枚银币中有1枚假币,该假币的重量比其他29枚银币的重量小1,先将30枚银币平分成两部分,各15枚,分别称重,重量小的那一半银币中必然包含假币,然后再分成两部分,依次类推,直至最后剩下两枚银币,称重后重量小的那一枚即为假币。
2021-10-30 13:04:04 44KB C语言 分治算法 求解假银币问题
1
本文实例讲述了Python基于回溯法子集树模板解决最佳作业调度问题。分享给大家供大家参考,具体如下: 问题 给定 n 个作业,每一个作业都有两项子任务需要分别在两台机器上完成。每一个作业必须先由机器1 处理,然后由机器2处理。 试设计一个算法找出完成这n个任务的最佳调度,使其机器2完成各作业时间之和达到最小。 分析: 看一个具体的例子: tji 机器1 机器2 作业1 2 1 作业2 3 1 作业3 2 3 最优调度顺序:1 3 2 处理时间:18 这3个作业的6种可能的调度方案是1,2,3;1,3,2;2,1,3;2,3,1;3,1,2;3,2,1; 它们所相应的完成时间和分别是19,18,
2021-10-30 11:43:25 84KB python函数 作业调度算法 回溯法
1
本文实例讲述了Python基于回溯法子集树模板解决0-1背包问题。分享给大家供大家参考,具体如下: 问题 给定N个物品和一个背包。物品i的重量是Wi,其价值位Vi ,背包的容量为C。问应该如何选择装入背包的物品,使得放入背包的物品的总价值为最大? 分析 显然,放入背包的物品,是N个物品的所有子集的其中之一。N个物品中每一个物品,都有选择、不选择两种状态。因此,只需要对每一个物品的这两种状态进行遍历。 解是一个长度固定的N元0,1数组。 套用回溯法子集树模板,做起来不要太爽!!! 代码 '''0-1背包问题''' n = 3 # 物品数量 c = 30 # 包的载重量 w
2021-10-30 11:33:31 55KB python python函数 python实例
1
【问题描述】每次都是优化选出一个元素(分组后的中位数)为划分基准,在线性时间内寻找第i小元素。提示:分组时的组的个数为n/5的向下取整;分组后的中位数取第(num_group/2向上取整)小的元素。 【输入形式】在屏幕上输入若干整数,各数间都以一个空格分隔。再输入要寻找的元素是数组从小到大顺序中第几个位置。 【输出形式】第一次划分基准元素,和数组从小到大顺序中要寻找的那个位置的元素。 【样例1输入】 2 9 8 0 7 10 1 12 3 14 5 13 6 11 4 3 【样例1输出】 7 2 【样例1说明】 输入:15个整数,以空格分隔。要寻找第3小元素。 输出:7表示第一划分基准元素为7,2表示第3小元素为2。
2021-10-28 22:31:30 871B python
1