#中国好问题

算法笔记_005:堆排序问题【变治法】

/目录1问题描述 2解决方案 2.1 堆排序原理简介 2.2 变治法原理简介 2.3 具体编码 2.4 运行结果截图  (1)实验题目   用基于变治法的堆排序算法对任意一组给定的...

算法笔记_006:全源最短路径问题【动态规划法】

/目录1问题描述2解决方案2.1 动态规划法原理简介2.2 具体编码2.3 运行结果  (1)实验题目   给定一个加权连通图(无向的或有向的),要求找出从每个定点到其他所有定点之间的最短路径以及最短路径的长度。(2)实验目的 &...

用安卓实现斐波那契数和最近点对问题

/目录1运行效果展示2具体编码2.1斐波那契数问题2.2最近点对问题  具体问题即解决方案请参考本人另一篇博客:算法笔记_001:斐波那契数的多种解法功能界面布局main_one.xml文件对应界面图:其源码:<?xmlversion="1.0"encoding="utf-8"?><...

算法笔记_007:猜底牌问题【贪婪法】

/目录1问题描述2解决方案2.1贪婪法原理简介2.2哈夫曼树及编码简介2.3具体编码2.4运行结果  设计一种策略,使在下面的游戏中,期望提问的次数达到最小。有一副纸牌,是由1张A,2张2,3张3,...9张9组成的,一共包含45张牌。有人从这副牌洗过的牌中抽出一张牌,问一连串可以回答是或否的问题来...

算法笔记_013:汉诺塔问题(Java递归法和非递归法)

/目录1问题描述2解决方案 2.1递归法2.2非递归法  SimulatethemovementoftheTowersofHanoiPuzzle;Bonusispossibleforusinganimation.e.g.ifn=2;A→B;A→C;B→C;&n...

算法笔记_016:凸包问题(Java)

/1问题描述2解决方案2.1蛮力法 给定一个平面上n个点的集合,它的凸包就是包含所有这些点的最小凸多边形,求取满足此条件的所有点。另外,形象生动的描述:(1)我们可以把这个问题看作如何用长度最短的栅栏把n头熟睡的老虎围起来。(2)也可以这样看:请把所讨论的点想象成钉在胶合板上的钉子,胶合板代表平面。撑开一根橡...

算法笔记_018:旅行商问题(Java)

/目录1问题描述2解决方案2.1蛮力法2.2减治法2.2.1Johson-Trotter算法2.2.2基于字典序的算法 何为旅行商问题?按照非专业的说法,这个问题要求找出一条n个给定的城市间的最短路径,使我们在回到触发的城市之前,对每个城市都只访问一次。这样该问题就可以表述为求一个图的最短哈密顿回路的问题。(...

算法笔记_019:背包问题(Java)

/目录1问题描述2解决方案2.1蛮力法2.2减治法2.2.1递归求解2.2.2非递归求解(运用异或运算)2.3动态规划法给定n个重量为w1,w2,w3,...,wn,价值为v1,v2,...,vn的物品和一个承重为W的背包,求这些物品中最有价值的子集(PS:每一个物品要么选一次,要么不选),并且要能够装到背包。附形象描...

算法笔记_029:约瑟夫斯问题(Java)

/目录1问题描述2解决方案引用自《算法设计与分析基础》第三版:约瑟夫斯问题,是以弗拉瓦斯。约瑟夫斯(FlaviusJosephus)的名字命名的。约瑟夫斯是一个著名的犹太历史学家,参加并记录了公元66—70年犹太人反抗罗马的起义。约瑟夫斯作为一个将军,设法守住了裘达伯特的堡垒达47天之久,但在城市陷落了以后...

算法笔记_031:计算中值和选择问题(Java)

/目录1问题描述 2解决方案2.1计算中值问题2.2选择问题中值问题是求一个n个数列表中某一数组下标k,它要求该下标元素比列表中的一半元素大,又比另一半元素小,这个中间的值被称为中值。 选择问题是求一个n个数列表的第k个最小元素的问题。  本文使用Lomuto划分算法思想,此处引...

算法笔记_045:币值最大化问题(Java)

/目录1问题描述2解决方案2.1动态规划法给定一排n个硬币,其面值均为正整数c1,c2,...,cn,这些整数并不一定两两不同。请问如何选择硬币,使得在其原始位置互不相邻的条件下,所选硬币的总金额最大。本文所写代码思想参考自《算法设计与分析基础》第三版上一段讲解,具体如下:  具体代码如下:pack...

算法笔记_046:跳台阶问题(Java)

/目录1问题描述2解决方案2.1递归法2.2迭代法一个台阶总共有n级,如果一次可以跳1级,也可以跳2级,求总共有多少种跳法。如果整个台阶只有1级,则显然只有一种跳法。如果台阶有2级,则有两种跳法:一种是分两次跳,每次跳1级;另一种是一次跳2级。推广到一般情况。则可以把n级台阶时的跳法看成是n的函数,记为f(n)。当n&...

算法笔记_048:找零问题(Java)

/目录1问题描述2解决方案2.1动态规划法现需找零金额为n,则最少需要用多少面值为d1<d2<d3<...<dm的硬币?(PS:假设这m种面值d1<d2<d3<...<dm的硬币,其中d1=1,且每种硬币数量无限可得)本文编码思想参考自《算法设计与分析基础》第三版,具体讲...

算法笔记_050:硬币收集问题(Java)

/目录1问题描述2解决方案2.1动态规划法在n*m格木板中放有一些硬币,每格的硬币数目最多为一个,在木板左上方的一个机器人需要收集尽可能多的硬币并把它们带到右下方的单元格。每一步,机器人可以从当前的位置向右移动一格或向下移动一格。当机器人遇到一个有硬币的单元格时,就会将这枚硬币收集起来。设计一个算法找出机器人能找到的最...

算法笔记_051:荷兰国旗问题(Java)

/目录1问题描述2解决方案现有n个红白蓝三种不同颜色的小球,乱序排列在一起,请通过两两交换任意两个球,使得从左至右的球依次为红球、白球、蓝球。这个问题之所以叫荷兰国旗,是因为将红白蓝三色的小球弄成条状物,并有序排列后正好组成荷兰国旗。为了方便编码与讨论,用数字0表示红球,数字1表示白球,数字2表示蓝球,所以最后生成的排...
首页上一页...3132333435...下一页尾页