算法设计
zpDreamer
数据挖掘爱好者
展开
-
装载问题-算法(回溯法)
装载问题有两艘船,载重量分别是c1、 c2,n个集装箱,重量是wi (i=1…n),且所有集装箱的总重量不超过c1+c2。确定是否有可能将所有集装箱全部装入两艘船。 采用回溯法一次从第一个货物到最后一个货物,最后行判断,哪一种最优这里写代码片public class Load { /** * @param args */ int c1=40,c2=50;原创 2016-06-08 14:40:29 · 3757 阅读 · 0 评论 -
八皇后问题
问题描述: 八皇后问题,是一个古老而著名的问题,是回溯算法的典型案例:在8X8格的国际象棋棋盘上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。问题求解: 采用回溯算法,即从第一行开始,依次探查可以放置皇后的位置,若找到,则放置皇后,开始探查下一行;若该行没有位置可以放置皇后,则回溯至上一行,清除该行放置皇后的信息,从该行原本放置皇后的下一个位原创 2016-06-07 09:20:55 · 687 阅读 · 0 评论 -
0-1背包问题(回溯法)
1. 0-1背包问题 在0 / 1背包问题中,需对容量为c 的背包进行装载。从n 个物品中选取装入背包的物品,每件物品i 的重量为wi ,价值为pi 。 对于可行的背包装载,背包中物品的总重量不能超过背包的容量,最佳装载是指所装入的物品价值最高。 本题采用回溯法进行求解: 代码如下: public class Package {/** * @param args */priva原创 2016-06-07 09:29:06 · 1762 阅读 · 1 评论 -
0-1背包问题(贪心法)
背包问题 有一个背包,背包容量是M=150。有7个物品,物品可以分割成任意大小。 要求尽可能让装入背包中的物品总价值最大,但不能超过总容量。 物品 A B C D E F G 重量 35 30 60 50 40 10 25 价值 10 40 30 50 35 40 30贪心算法描述:1.改变数组w和v的排列顺序,使其按单位重量价值v[原创 2016-07-03 19:43:48 · 2895 阅读 · 2 评论 -
二分查找
1. 二分查找 在对线性表的操作中,经常需要查找某一个元素在线性表中的位置。此问题的输入是待查元素x和线性表L,输出为x在L中的位置或者x不在L中的信息。 算法介绍: 二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查原创 2016-07-03 19:52:06 · 681 阅读 · 0 评论 -
合并排序
2. 合并排序 算法介绍: 合并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法 的一个非常典型的应用。 合并排序法是将两个(或两个以上)有序表合并成一个新的有序表,即把待排序序列分为若干个子序列,每个子序列是有序的。然后再把有序子序列合并为整体有序序列。 将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称原创 2016-07-03 19:53:28 · 989 阅读 · 0 评论