算法
qq_27378875
哈哈
展开
-
最小生成树之普利姆算法
最小生成树-普利姆算法-Java版(无向图)package 最小生成树之普利姆算法;import java.lang.Integer;class MGraph{ public int[][] arc; public int vertices; public MGraph(int n){ vertices = n; arc = new int[n][n]; } publi...原创 2018-07-23 16:57:22 · 664 阅读 · 0 评论 -
二叉树的先序遍历、中序遍历和后序遍历及层次遍历
package 二叉树遍历;import java.util.LinkedList;import java.util.Queue;import java.util.Stack;public class BinaryTree { // 二叉树结点 public static class BinaryTreeNode { int value; BinaryTreeNode l...原创 2018-08-03 08:24:27 · 308 阅读 · 0 评论 -
插入排序
2018-02-16特点:所需时间取决于元素的初始顺序,元素有序比随机顺序较为有利(时好时不好)```public class Insertion{ public static void sort(Comparable[] a){ int N=a.length; for(int i=1;i<N;i++){ for(j=i;j>0;j--){ ...翻译 2018-02-26 19:05:56 · 73 阅读 · 0 评论 -
简单选择排序、冒泡排序、直接插入排序、希尔排序、堆排序、归并排序
简单选择排序,最坏最好平均的时间复杂度都是O(n^2),排序是稳定的public class SelectiveSort{ public static void sSort(int[] nums){ if(nums==null||nums.length==0){ return; } int min; ...原创 2018-07-22 12:36:09 · 308 阅读 · 0 评论 -
旅行商问题
public class TestTravel { public static void travel(int[][] distance){ int b=(int)Math.pow(2,distance.length-1); int n = distance.length; int[][] F = new int[n][b]; //n行b列的二维数组,存放阶段最优值,即最短距离...原创 2018-07-22 20:52:04 · 206 阅读 · 0 评论 -
基于辗转相除法求最大公约数
(1)p=0,q=0 无最大公约数(2)p=0,q≠0 最大公约数为q(3)p≠0,q=0 最大公约数为p(4)p≠0,q≠0 最大公约数可通过辗转相除取余数转化为(2)(3)这样的情况来求解//递归版,非递归用循环public class Euclid { public static void main(String[] args) { System.out...原创 2018-07-26 16:20:51 · 121 阅读 · 0 评论 -
牛顿迭代法在JDK源代码中的应用
java.util.Math包中判断一个数为素数的方法和求平方根的方法,其中判断为素数的方法感觉思路比较新颖,可以借鉴,求平方根用到了牛顿迭代法。判断一个数是否为素数(源代码)://true代表素数public static boolean isPrime(int N){ if(N<2){ return false; } for(int i=2;i*i<=...原创 2018-07-26 16:14:32 · 135 阅读 · 0 评论 -
深度优先遍历邻接矩阵版
深度优先遍历邻接矩阵版package 深度优先遍历邻接矩阵版;import java.util.Stack;//转public class DFSTest { //存储节点信息 private char[] vertices; //存储边信息 private int[][] arcs; //图中结点数 private int vexnum; //记录结点是...原创 2018-07-24 20:39:37 · 422 阅读 · 1 评论 -
广度优先遍历邻接矩阵版
广度优先遍历邻接矩阵版package 广度优先遍历邻接矩阵版;import java.util.LinkedList;import java.util.Queue;public class BFSTest { //存储节点信息 private char[] vertices; //存储边信息 private int[][] arcs; //图中结点数 priva...原创 2018-07-24 20:38:08 · 243 阅读 · 0 评论 -
最小生成树之克鲁斯卡尔算法
最小生成树-克鲁斯卡尔算法-Java版(无向图)关键在于判断是否能够形成环判断依据:所有的结点都是层层指向最大的结点,如果最后一个相等,说明可以形成环,例如:1->3->5与4->5可以形成环package 最小生成树之克鲁斯卡尔算法;class MGraph{ public int[][] arc; public int vertices; publi...原创 2018-07-23 16:57:12 · 305 阅读 · 0 评论 -
背包问题
package 背包问题之多重背包;/* * 有编号分别为a,b,c的三件物品,它们的重量分别是1,2,2,它们的价值分别是6,10,20, * 他们的数目分别是10,5,2, * 现在给你个承重为 8 的背包,如何让背包里装入的物品具有最大的价值总和 */public class DongtaiGuihua { public static void main(String[] a...原创 2018-08-24 09:45:48 · 208 阅读 · 0 评论