算法
这个名字真难起
无。。。
展开
-
Java十大算法(2):普利姆算法(Prim)、克鲁斯卡尔算法(Kruskal)、迪杰斯特拉算法(Dijkstra)、弗洛伊德算法(Floyd)、马踏棋盘算法
普利姆算法(Prim)最小生成树:修路问题本质就是就是最小生成树问题, 先介绍一下 最小生成树 (Minimum Cost Spanning Tree),简称MST。给定一个带权的无向连通图,如何选取一棵生成树,使树上所有边上权的总和为最小,这叫最小生成树N个顶点,一定有N-1条边包含全部顶点N-1条边都在图中举例说明(如图)求最小生成树的算法主要是普里姆算法和克鲁斯卡尔算法普里姆算法介绍:普利姆(Prim)算法求最小生成树,也就是在包含n个顶点的连通图中,找出只有(n-1)条原创 2020-05-11 13:05:17 · 1025 阅读 · 0 评论 -
Java十大算法(1):二分查找算法、分治算法、动态规划算法、KMP查找算法、贪心算法
1、二分查找算法之前有说过二分查找算法,是使用递归的方式,下面我们来写一个二分查找算法的非递归方式二分查找法只适用于从有序的数列中进行查找(比如数字和字母等),将数列排序后再进行查找二分查找法的运行时间为对数时间O(㏒₂n),即查找到需要的目标位置最多只需要㏒₂n步,假设从[0,99]的队列(100个数,即n=100)中寻到目标数30,则需要查找步数为㏒₂100 ,即最多需要查找7次( 2...原创 2020-05-08 00:25:38 · 355 阅读 · 0 评论 -
Java算法之查找
查找算法介绍顺序(线性)查找二分查找/折半查找插值查找斐波那契查找线性查找算法代码(查找数组中所有该元素的下标):import java.util.ArrayList;public class SeqSearch { public static void main(String[] args) { int arr[] = { 1, 9, 11, -1, 34, 89,...原创 2020-04-25 21:20:24 · 104 阅读 · 0 评论 -
Java算法之算法复杂度、八大排序算法(除堆排序外)
算法的时间复杂度度量一个程序(算法)执行时间的两种方法:事后统计的方法:这种方法可行, 但是有两个问题:一是要想对设计的算法的运行性能进行评测,需要实际运行该程序;二是所得时间的统计量依赖于计算机的硬件、软件等环境因素, 这种方式,要在同一台计算机的相同状态下运行,才能比较那个算法速度更快。事前估算的方法:通过分析某个算法的时间复杂度来判断哪个算法更优。时间频度:一个...原创 2020-04-25 01:18:26 · 305 阅读 · 0 评论 -
Java算法之递归与迷宫问题、八皇后问题
递归的概念简单的说:递归就是方法自己调用自己,每次调用时传入不同的变量.递归有助于编程者解决复杂的问题,同时可以让代码变得简洁。递归调用机制打印问题public class RecursionTest { public static void main(String[] args) { test(4); } public static void test(int n)...原创 2020-04-21 23:57:41 · 237 阅读 · 0 评论 -
算法之解“约瑟夫环”(递归思想)
题目一群猴子要选新猴王。新猴王的选择方法是:让N只候选猴子围成一圈,从某位置起顺序编号为1~N号。从第1号开始报数,每轮从1报到M,凡报到M的猴子即退出圈子,接着又从紧邻的下一只猴子开始同样的报数。如此不断循环,最后剩下的一只猴子就选为猴王。请问是原来第几号猴子当选猴王?输入格式:输入在一行中给两个正整数N, M(1<= N,M ≤10000000)。输出格式:在一行中输出当选猴王...原创 2020-04-11 20:43:10 · 950 阅读 · 0 评论