算法
Zxiexu
这个作者很懒,什么都没留下…
展开
-
并查集,最小生成树-K\P算法实现
最小生成树:即在可走遍所有树节点的情况下,边权重之最小的求和;K算法实现:-并查集实现(K算法中运用到的结构)//并查集public class UnionFind { /* 作用:用来满足二种结构---本身也是一种数据结构 ①isSameSet结构,这个结构是用来查找两个元素是否属于一个集合 ②union结构,就是把两个集合合并成一个大集合 */ /* 实现逻辑: 每个集合的每个元素都有一个node,包含-元素的value值和它的上级指针原创 2021-12-27 19:42:08 · 276 阅读 · 0 评论 -
Java:Morris算法:实现代码及阐述-打印二叉树-最大二叉搜索树
//Morris算法 :其实就是把空间复杂度优化到O(1)的二叉树遍历算法。/* 当前节点:cur, 出发点:cur=head(头节点出发) 1.当cur无左树,cur = cur.right (来到右子节点) 2.当cur有左树,找左树最右节点mostright 1).若mostright的右指针指向null,mostright.right = cur(让左树最右节点mostright的右指针指向当前节点),cur=cur.left (当前节点来到左节点) 2).若mostright原创 2021-04-15 17:37:32 · 113 阅读 · 0 评论 -
Java:Bfprt算法:逻辑流程及代码实现
//Bfprt算法//bfprt算法是用来求数组中第k小的元素的算法,bfprt算法可以在O(n)时间(最坏情况O(n^2))内求出答案。//bfprt解法和常规方法唯一不同的就是在po(随机数)的选取上,其他地方一模一样。public static void main(String[] args) { int[] arr = {4,8,5,7,4,9,5,2,5,4,1,3,6,8,2,9}; int k=6; System.out.println(bfpet2(arr,k));...原创 2021-04-15 17:42:20 · 192 阅读 · 0 评论 -
JAVA:二叉树的基本算法-递归序(包括先序等、层次、序列化堆)
import java.util.HashMap;import java.util.LinkedList;import java.util.Queue;import java.util.Stack;//二叉树的基本算法-递归序public class Binary {//类中类,定义数据类型public static class Node{ public int value; public Node left; public Node right; //构造器,将调用输入作为value原创 2021-04-10 20:47:33 · 94 阅读 · 0 评论 -
JAVA:汉诺塔圆盘移动-包括逻辑细节
public class Hanoi { //暴力递归—汉诺塔圆盘移动//暴力递归 与 动态规划 的差异:记录每个值就是动态规划,//动态规划 就是某一类 尝试行为 的进一步优化,任意一个动态规划问题都是暴力尝试过程的优化后的样子/* * 汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。 * 大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。 * 大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆原创 2021-04-10 20:39:36 · 536 阅读 · 0 评论 -
JAVA:N皇后问题-普通方法和最好的位运算方法
public class NQueen { //N皇后:/*N皇后问题:给定一个正整数N>3(N=2、3摆不了),在N*N的棋盘上摆N个皇后,返回有多少种摆法要求:任意二个皇后不能同行、同列、同斜线*/public static void main(String[] args) { int n=14; long start1 = System.currentTimeMillis(); //System.currentTimeMillis() 在java中是最常用的获取系统原创 2021-04-10 20:37:08 · 234 阅读 · 1 评论