摘要:
int类型 设计表的时候 int(3) 并不能限制取值范围和占用空间这个是int类型本身限制的 例:int(3) 在插入数据的时候 1000也能插入成功(一版设计表的时候只填写类型,后面不加(X)) year类型 以2位字符串存入的取值范围 '00'-'69' - '70'-'99' -> 200 阅读全文
摘要:
SELECT (@y :=@y + 1) 排名, s_id, sc FROM ( SELECT s_id, SUM(s_score) AS sc FROM score GROUP BY s_id ORDER BY SUM(s_score) DESC ) a, (SELECT @y := 0) AS 阅读全文
摘要:
弗洛伊德算法和迪杰斯特拉算法类似,是计算一个图中各个顶点之间的最短路径,每一个顶点都是出发顶点 记录两个顶点的距离,如果有经过某一顶点所得到的距离比直接连接这两个顶点的距离小则更新,否则不变 实现为:使用双层循环当中间顶点不变,出发和终点的点进行循环,最后使用一层循环更新中间顶点,总共使用三层循环, 阅读全文
摘要:
迪杰斯特拉算法是求最短路径的算法,计算图中一个顶点到其他顶点的最短路径,应用了广度优先的思想,由一个点扩散直到终点为止 过程: 设置出发顶点为v,集合为V,距离集合为Dis 从Dis中选取最小值移除di,同时移除对应的V的顶点vi 比较v到V中顶点的距离值,与v通过的vi到集合V中顶点的距离值,保留 阅读全文
摘要:
同样是求最小生成树克鲁斯卡尔算法的思想则转变了一下,以边为目标去生成最小数 这种感觉就像是结果等于10式子2*5也行,20/2也行,方式不同只看最后的结果 思想:按照权值的大小从小到大排序,选择n-1条边,并且不构成回路 过程:构造一个只含有n个节点的森林,然后从权值最小到最大选择边加入到森林中,使 阅读全文
摘要:
普里姆算法的应用场景为修路问题,就是用最小的路径连接所有节点 转换一下就是最小生成树(MST)的问题:给定一个带权的无向连接图,如何选取一颗生成树,使树上的所有的边上权的总和为最小,就是最小生成树 普里姆算法求最小生成树:在包含n个顶点的连接图中,找出只有(n-1)条边并包含所有n个顶点的连通子图, 阅读全文
摘要:
骑士周游问题实际上是图的深度优先搜索(DFS)的应用,使用回溯的方式来解决步骤过于繁琐,一旦走错就要回溯 为了减少运算次数,使用贪心算法进行优化:根据当前一步的所有的下一步的选择位置进行递减排序 减少回溯次数 import java.awt.*; import java.util.ArrayList 阅读全文
摘要:
贪心算法是指对于解决问题的每一步都作出最优解,从而希望得到最后的结果也是最优解,但是最后结果不一定都是最优解,大部分都是最接近最优解的结果 具体在百度百科的基本思路里有很好的解释,这里就不详写了 用贪心算法解决覆盖问题: import java.util.ArrayList; import java 阅读全文
摘要:
暴力匹配算法虽然写起来简单但是效率太低了,一旦出现不匹配就要从头匹配,怎么能让字符串匹配不对的时候有效的往后移动呢?这时候就出现3个大神,分别提出最后联合发表了这个算法——KMP算法,有效的解决了这个问题。 KMP算法的核心就是如何有效的后移,这张表的计算方法如下 如字符串:A B C D A B 阅读全文
摘要:
暴力匹配的方式很简单,就是一个个的对比,当有一个不对的时候则将要找的数据从头计算,被找的数据继续往下寻找,直到被找数据对比完成,找到返回下标,没有返回 -1 public class ViolenceMatch { public static void main(String[] args) { S 阅读全文