#算法的乐趣

算法笔记_002:最近点对问题

问题描述: 给定某空间中(直线空间或平面空间)n个点,请找出它们中的最近点对。你需要完成下列任务: 1、随机产生或手工输入n个点的坐标。 2、输出最近的两个点的坐标。 3、算法尽可能效率高。解决方案: 针对问题,主要包括两个方面的问题,一是在直线空间求最近点对,二是在平...
代码星球 ·2021-02-09

算法笔记_003:矩阵相乘问题【分治法】

/目录1问题描述 1.1实验题目 1.2实验目的 1.3实验要求 2解决方案 2.1分治法原理简述 2.2分治法求解矩阵相乘原理 2.3具体实现源码 2.4运算结果截图      ...

算法笔记_004:8枚硬币问题【减治法】

/目录1问题描述2解决方案2.1减治法原理叙述 2.28枚硬币规模解法 2.3n枚硬币规模解法     在8枚外观相同的硬币中,有一枚是假币,并且已知假币与真币的重量不同,但不知道假币与真币相比较轻还是较重。可以通过一架天平来任意比较两组硬币,设计一...

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

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

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

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

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

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

算法笔记_008:选择排序和冒泡排序【蛮力法】

/目录1问题描述2解决方案2.1选择排序原理简介2.2具体编码(选择排序)2.3冒泡排序原理简介 2.4具体编码(冒泡排序)给定一个可排序的n元素序列(例如,数字、字符和字符串),将它们按照非降序方式重新排列。选择排序开始的时候,我们从第一个元素开始扫描整个列表,找到它的最小元素,然后和第一个元素交换,将最小...

算法笔记_009:字符串匹配(Java)

给定一个n个字符组成的串(称为文本),一个m(m<=n)的串(称为模式),从文本中寻找匹配模式的子串。 packagecom.liuzhen.chapterThree;publicclassBruteForceStringMatch{//根据文本串N,和模式串M,返回第一个匹配模式串的子串在N中的位置p...

算法笔记_010:插入排序(Java)

给定一组数据,使用插入排序得到这组数据的非降序排列。  引用自百度百科:有一个已经有序的数据序列,要求在这个已经排好的数据序列中插入一个数,但要求插入后此数据序列仍然有序,这个时候就要用到一种新的排序方法——插入排序法,插入排序的基本操作就是将一个数据插入到已经排好序的有序数...

算法笔记_011:希尔排序

给定一组数据,请使用希尔排序获取这组数据的非降序序列。 希尔排序的实质就是分组插入排序,该方法又称缩小增量排序,因DL.Shell于1959年提出而得名。该方法的基本思想是:先将整个待排元素序列分割成若干个子序列(由相隔某个“增量”的元素组成的)分别进行直接插入排序,然后依次缩减增量再...
代码星球 ·2021-02-09

算法笔记_012:埃拉托色尼筛选法(Java)

ComputetheGreatestCommonDivisorofTwoIntegersusingSieveofEratosthenes.翻译:使用埃拉托色尼筛选法计算两个整数的最大公约数。(PS:最大公约数也称最大公因数,指两个或多个整数共有约数中最大的一个)  引用自百度百科:埃拉托色尼筛选法(...

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

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

算法笔记_014:合并排序(Java)

给定一组数据,使用合并排序得到这组数据的非降序排列。  引用自百度百科:合并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(DivideandConquer)的一个非常典型的应用。合并排序法是将两个(或两个以上)有序表合并成一个新的有序表,即把待排序序列分为若干个子序列,每个子序列是...

算法笔记_015:快速排序(Java)

/1问题描述2解决方案2.1快速排序原理简介2.2具体编码 给定一组数据,使用快速排序得到这组数据的非降序排列。  引用自百度百科:快速排序(Quicksort)是对冒泡排序的一种改进。快速排序由C.A.R.Hoare在1962年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的...

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

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