算法实现
算法
水木糸
这个作者很懒,什么都没留下…
展开
-
博弈论算法
文章目录BashGame:同余理论NimGame:异或理论WythoffGame:黄金分割BashGame:同余理论NimGame:异或理论WythoffGame:黄金分割原创 2020-02-25 20:45:40 · 1176 阅读 · 0 评论 -
图论
文章目录1.最小生成树1.1普利姆(Prim)算法1.2卡鲁斯卡尔(Kruskal)算法2.最短路径2.1迪杰斯特拉(Dijikstra)算法2.2弗洛伊德(Floyd)算法3.拓扑排序4.关键路径1.最小生成树在一给定的无向图G = (V, E) 中,(u, v) 代表连接顶点 u 与顶点 v 的边,而 w(u, v) 代表此边的权重,若存在 T 为 E 的子集且为无循环图,使得 w(T)...原创 2020-02-05 17:26:54 · 744 阅读 · 0 评论 -
算法练习:分治法
分治法在计算机科学中,分治法是一种很重要的算法。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。精髓:分–将问题分解为规模更小的子问题;治–将这些规模更小的子问题逐个击破;合–将已解决的子问题合并,最终得出“母”问题的解;可解决问题的特征该问题的规模...原创 2020-01-31 19:07:39 · 763 阅读 · 0 评论 -
算法练习:动态规划
动态规划动态规划(dynamic programming)是运筹学的一个分支,是求解决策过程(decision process)最优化的数学方法。20世纪50年代初美国数学家R.E.Bellman等人在研究多阶段决策过程(multistep decision process)的优化问题时,提出了著名的最优化原理(principle of optimality),把多阶段过程转化为一系列单阶段问...原创 2020-01-29 20:52:06 · 205 阅读 · 0 评论 -
算法练习:KMP
KMP算法KMP算法是一种改进的字符串匹配算法,由D.E.Knuth,J.H.Morris和V.R.Pratt提出的,因此人们称它为克努特—莫里斯—普拉特操作(简称KMP算法)。KMP算法的核心是利用匹配失败后的信息,尽量减少模式串与主串的匹配次数以达到快速匹配的目的。具体实现就是通过一个next()函数实现,函数本身包含了模式串的局部匹配信息。KMP算法的时间复杂度O(m+n)。原理...原创 2020-01-18 22:33:07 · 199 阅读 · 0 评论 -
N皇后:JAVA的递归实现(回溯法)
题目所谓N皇后问题就是:将N位皇后放在一张NxN的棋盘上,使得每位皇后都无法吃掉别的皇后,(即任意两个皇后都不在同一条横线,竖线和斜线上),问一共有多少种摆法。实现及思路package 蓝桥;import java.util.Scanner;public class NQueen { static int count = 0;//解法计数 static int[][] a...原创 2020-01-09 17:41:54 · 416 阅读 · 1 评论 -
汉诺塔:JAVA的递归实现
题目实现package 蓝桥;import java.util.Scanner;public class Hanoi {static void hanoi(int n,char start,char mid,char end) { if(n==1) { System.out.println(n+"从"+start+"到"+end); return; } hanoi(n...原创 2020-01-09 16:58:31 · 238 阅读 · 0 评论 -
熄灯问题:JAVA实现
题目实现在这里插入代码片原创 2020-01-09 16:02:54 · 949 阅读 · 0 评论 -
枚举法实例:JAVA实现
完美立方题目实现package 蓝桥;import java.util.Scanner;class CubeNumber { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); for (int a = 2; a ...原创 2020-01-09 13:43:31 · 472 阅读 · 0 评论 -
分苹果:JAVA的递归实现
-题目思路代码package 蓝桥;import java.util.Scanner;public class Apple {static int f(int m,int n) {//m果,n盘 if(n==0)//无盘,无法分配 return 0; if(m==0)//无果,分配只有一种全0 return 1; if(n>m)//盘多于果,怎么相当于m...原创 2019-11-19 22:15:49 · 151 阅读 · 0 评论 -
表达式求值:JAVA的递归实现
题目思路求值优先级:括号》*/》±故可递归从低到高调用,整数可以看作一个单独的括号值代码package 蓝桥;//测试用例(2+3)*(5+7)+9/3 (12+3)/(3+3)//不能计算负数,除法只取整数位import java.util.Scanner;public class InfixExp {static char[] exp;static int i=0...原创 2019-11-14 20:18:59 · 488 阅读 · 0 评论 -
逆波兰表达式:JAVA的递归实现
题目实际上这道题是前缀表达式,逆波兰应该是后缀表达式思路前缀表达式的形式:运算符 前缀表达式 前缀表达式一个数也可是表达式代码package 蓝桥;import java.util.Scanner;public class PolandExpression { static Scanner sc = new Scanner(System.in); static do...原创 2019-11-13 20:55:40 · 340 阅读 · 0 评论 -
算24:JAVA的递归实现
算24的JAVA实现题目思路4个数进行24点运算,可以先选两个数运算,再把结果与剩下的两个数在进行运算代码package 蓝桥;import java.util.Arrays;import java.util.Scanner;//24点的4个数经过除法运算会生成浮点数//浮点数无法使用==直接比较,所以采取误差范围比较public class Point24 { st...原创 2019-11-13 20:31:50 · 424 阅读 · 0 评论