51
Dev开发社区
首页
文章
问答
工具
搜索
登录
注册
#毛主席的六大读书笔记
算法笔记_008:选择排序和冒泡排序【蛮力法】
/目录1问题描述2解决方案2.1选择排序原理简介2.2具体编码(选择排序)2.3冒泡排序原理简介 2.4具体编码(冒泡排序)给定一个可排序的n元素序列(例如,数字、字符和字符串),将它们按照非降序方式重新排列。选择排序开始的时候,我们从第一个元素开始扫描整个列表,找到它的最小元素,然后和第一个元素交换,将最小...
代码星球
·
2021-02-09
排序
算法
笔记
选择
冒泡
算法笔记_009:字符串匹配(Java)
给定一个n个字符组成的串(称为文本),一个m(m<=n)的串(称为模式),从文本中寻找匹配模式的子串。 packagecom.liuzhen.chapterThree;publicclassBruteForceStringMatch{//根据文本串N,和模式串M,返回第一个匹配模式串的子串在N中的位置p...
代码星球
·
2021-02-09
算法
笔记
字符串
匹配
Java
算法笔记_010:插入排序(Java)
给定一组数据,使用插入排序得到这组数据的非降序排列。 引用自百度百科:有一个已经有序的数据序列,要求在这个已经排好的数据序列中插入一个数,但要求插入后此数据序列仍然有序,这个时候就要用到一种新的排序方法——插入排序法,插入排序的基本操作就是将一个数据插入到已经排好序的有序数...
代码星球
·
2021-02-09
算法
笔记
插入
排序
Java
算法笔记_011:希尔排序
给定一组数据,请使用希尔排序获取这组数据的非降序序列。 希尔排序的实质就是分组插入排序,该方法又称缩小增量排序,因DL.Shell于1959年提出而得名。该方法的基本思想是:先将整个待排元素序列分割成若干个子序列(由相隔某个“增量”的元素组成的)分别进行直接插入排序,然后依次缩减增量再...
代码星球
·
2021-02-09
算法
笔记
希尔
排序
算法笔记_012:埃拉托色尼筛选法(Java)
ComputetheGreatestCommonDivisorofTwoIntegersusingSieveofEratosthenes.翻译:使用埃拉托色尼筛选法计算两个整数的最大公约数。(PS:最大公约数也称最大公因数,指两个或多个整数共有约数中最大的一个) 引用自百度百科:埃拉托色尼筛选法(...
代码星球
·
2021-02-09
算法
笔记
埃拉
托色
尼筛
算法笔记_013:汉诺塔问题(Java递归法和非递归法)
/目录1问题描述2解决方案 2.1递归法2.2非递归法 SimulatethemovementoftheTowersofHanoiPuzzle;Bonusispossibleforusinganimation.e.g.ifn=2;A→B;A→C;B→C;&n...
代码星球
·
2021-02-09
递归
算法
笔记
汉诺塔
问题
算法笔记_014:合并排序(Java)
给定一组数据,使用合并排序得到这组数据的非降序排列。 引用自百度百科:合并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(DivideandConquer)的一个非常典型的应用。合并排序法是将两个(或两个以上)有序表合并成一个新的有序表,即把待排序序列分为若干个子序列,每个子序列是...
代码星球
·
2021-02-09
算法
笔记
合并
排序
Java
算法笔记_015:快速排序(Java)
/1问题描述2解决方案2.1快速排序原理简介2.2具体编码 给定一组数据,使用快速排序得到这组数据的非降序排列。 引用自百度百科:快速排序(Quicksort)是对冒泡排序的一种改进。快速排序由C.A.R.Hoare在1962年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的...
代码星球
·
2021-02-09
算法
笔记
快速
排序
Java
算法笔记_016:凸包问题(Java)
/1问题描述2解决方案2.1蛮力法 给定一个平面上n个点的集合,它的凸包就是包含所有这些点的最小凸多边形,求取满足此条件的所有点。另外,形象生动的描述:(1)我们可以把这个问题看作如何用长度最短的栅栏把n头熟睡的老虎围起来。(2)也可以这样看:请把所讨论的点想象成钉在胶合板上的钉子,胶合板代表平面。撑开一根橡...
代码星球
·
2021-02-09
算法
笔记
凸包
问题
Java
算法笔记_017:递归执行顺序的探讨(Java)
/目录1问题描述2解决方案2.1问题化简2.2定位输出测试2.3回顾总结 最近两天在思考如何使用蛮力法解决旅行商问题(此问题,说白了就是如何求解n个不同字母的所有不同排序的序列问题,即共有n!次不同排序)。为此,我认真看了一篇出自CSDN上的博客文章,其中有一段核心代码就是在for循环里面添加一句...
代码星球
·
2021-02-09
算法
笔记
递归
执行
顺序
算法笔记_018:旅行商问题(Java)
/目录1问题描述2解决方案2.1蛮力法2.2减治法2.2.1Johson-Trotter算法2.2.2基于字典序的算法 何为旅行商问题?按照非专业的说法,这个问题要求找出一条n个给定的城市间的最短路径,使我们在回到触发的城市之前,对每个城市都只访问一次。这样该问题就可以表述为求一个图的最短哈密顿回路的问题。(...
代码星球
·
2021-02-09
算法
笔记
行商
问题
Java
算法笔记_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:每一个物品要么选一次,要么不选),并且要能够装到背包。附形象描...
代码星球
·
2021-02-09
算法
笔记
背包
问题
Java
算法笔记_020:深度优先查找(Java)
/目录1问题描述2解决方案2.1蛮力法深度优先查找(depth-firstsearch,DFS)可以从任意顶点开始访问图的顶点,然后把该顶点标记为已访问。在每次迭代的时候,该算法紧接着处理与当前顶点邻接的未访问顶点。这个过程一直持续,直到遇到一个终点——该顶点的所有邻接顶点都已被访问过。在该终点...
代码星球
·
2021-02-09
算法
笔记
深度
优先
查找
算法笔记_021:广度优先查找(Java)
/目录1问题描述2解决方案2.1蛮力法广度优先查找(Breadth-firstSearch,BFS)按照一种同心圆的方式,首先访问所有和初始顶点邻接的顶点,然后是离它两条边的所有未访问顶点,以此类推,直到所有与初始顶点同在一个连通分量中的顶点都被访问过了为止。如果仍然存在未被访问的顶点,该算法必须从图的其他连接分量中的...
代码星球
·
2021-02-09
算法
笔记
广度
优先
查找
算法笔记_022:字符串的旋转(Java)
/目录1问题描述2解决方案2.1蛮力移位2.2三步反转给定一个字符串,要求将字符串前面的若干个字符移到字符串的尾部。例如,将字符串“abcdef”的前3个字符‘a’、‘b’和‘c’移到字符串的尾部,那么原字符串将变成&ldq...
代码星球
·
2021-02-09
算法
笔记
字符串
旋转
Java
首页
上一页
...
29
30
31
32
33
...
下一页
尾页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他