【java代码实现二叉树的遍历】教程文章相关的互联网学习教程文章

MD5加密算法Java代码【代码】

原文:http://www.open-open.com/code/view/1428398234916 import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; publicclass MD5Utils { /** * md5加密方法 * @param password * @return*/publicstatic String md5Password(String password) { try { // 得到一个信息摘要器 MessageDigest digest = MessageDigest.getInstance("md5"); byte[] result = digest.digest(password.getBytes()...

计数排序Java代码实现【代码】

结论:由于计数排序不是基于比较的排序,所以时间复杂度可以突破O(nlgn);计数排序时间复杂度为O(n),额外空间复杂度为O(n);Java实现代码如下: 1package com.cmbc.test1;2 3publicclass CountSorting {4 5publicstaticvoid countSort(int[] arr){6if(arr==null||arr.length<2){7return;8 }9int max = Integer.MIN_VALUE; 10for(int i = 0 ;i<arr.length;i++){ 11 max = Math.max(max, arr[i]); 12 } 13in...

易理解java代码8皇后问题

马上就要蓝桥杯比赛了,我这些算法还是不会,确实有点慌,今天一天早上睡到很晚不愿起床,然后才开始研究8皇后问题。这也是典型的回溯与递归问题。其实本质上和马踏棋盘问题非常类似,八皇后问题呢,就是要判断主对角线,副对角线,横排和竖排不能有皇后。这个是这个问题的着重点。先来看下八皇后问题吧。1.问题描述:    在8*8的棋盘中放8个皇后,使得每个皇后不能放在同一行,同一列,同一主对角线上(左下斜),同一副对角线上(...

几种简单的负载均衡算法及其Java代码实现【代码】

什么是负载均衡 负载均衡,英文 名称为Load Balance,指由多台服务器以对称的方式组成一个服务器集合,每台服务器都具有等价的地位,都可以单独对外提供服务而无须其他服务器的辅助。通过某种 负载分担技术,将外部发送来的请求均匀分配到对称结构中的某一台服务器上,而接收到请求的服务器独立地回应客户的请求。负载均衡能够平均分配客户请求到服 务器阵列,借此提供快速获取重要数据,解决大量并发访问服务问题,这种集群技术可...

twoSquareSum算法—java代码【代码】

题目描述 判断一个非负整数是否为两个正整数的平方和。 示例 1:输入:5 输出:True 描述:1 * 1 + 2 * 2 = 5示例 2:输入:6 输出:False 描述:找不到满足平方和为6的两个正整数示例 3:输入:25 输出:True 描述:3 * 3 + 4 * 4 = 25算法:twoSquareSum() 看作是在元素为 0~target 的有序数组中查找两个数,使得这两个数的平方和为target,如果能找到则返回True,表示target是两个整数的平方和。本题使用双指针求出两个数,使他...

二叉树小结(附Java代码可直接运行)【代码】【图】

二叉树常见类型 1、满二叉树 一棵二叉树的结点要么是叶子结点,要么它有两个子结点(如果一个二叉树的层数为K,且结点总数是(2^k) -1,则它就是满二叉树。) 层数与此层节点数的对应关系:第K层,节点数为2^(K)。K从0开始。 计算公式 等比数列求和公式 最终得出 2、完全二叉树 若设二叉树的深度为k,除第 k 层外,其它各层 (1~k-1) 的结点数都达到最大个数,第k 层所有的结点都连续集中在最左边,这就是完全二叉树。 3、平衡...

三种ThreeSum算法-JAVA代码【代码】

题目描述 给定由N个整数组成的数组nums,找出三个元素之和为0的三元组(非重复序列),并记录这样的三元组的数量。 ThreeSum算法 //ThreeSum 用于统计一个数组中和为 0 的三元组数量。public interface ThreeSum {int count(int[] nums);}算法一:ThreeSumLow 分析:ThreeSumLow 算法内循环(三层循环 for) 判断if(num[i] + num[j] + num[k] = 0)语句是否成立,总共执行次数为N(N-1)(N-2) [其中N为数组的长度,即.N = nums.length],因...

使用java代码实现归并排序【代码】【图】

一: 合并排序(MERGE SORT)是又一类不同的排序方法,合并的含义就是将两个或两个以上的有序数据序列合并成一个新的有序数据序列,因此它又叫归并算法。它的基本思想就是假设数组A有N个元素,那么可以看成数组A是又N个有序的子序列组成,每个子序列的长度为1,然后再两两合并,得到了一个 N/2 个长度为2或1的有序子序列,再两两合并,如此重复,值得得到一个长度为N的有序数据序列为止,这种排序方法称为2—路合并排序。例如数组A...

力扣算法题-面试题17.10-多数元素-java代码【代码】【图】

数组中占比超过一半的元素称之为主要元素。给定一个整数数组,找到它的主要元素。若没有,返回-1。 示例 1: 输入:[1,2,5,9,5,9,5,5,5] 输出:5 示例 2: 输入:[3,2] 输出:-1 示例 3: 输入:[2,2,1,1,1,2,2] 输出:2 要求:时间复杂度O(N),空间复杂度O(1) 思路一:基本思想:摩尔投票算法: 以 [2,2,1,3,1,2,2] 为例。 遍历数组第一个元素 2 时,因 major 空缺,所以赋值 major = 2,且票数 count = 1()如果数组中存在最多元素...

图的相关算法(Java代码实现)【代码】

图的相关算法(Java代码实现) 图的创建声明 public class Graph {public HashMap<Integer, Node> nodes; //点集public HashSet<Edge> edges; //边集public Graph() {nodes = new HashMap<>();edges = new HashSet<>();} } 边的声明 public class Edge {public int weight; //边的权值public Node from; //边的两个点 from->topublic Node to; public Edge(int weight, Node from, Node to) {this.weight = weight;this.from...

快速排序Java代码实现【代码】

快速排序Java代码实现 1. 快速排序原理 (1)定义一个基准元素base(我这里定义的是最左面的元素定位基准元素) (2)定义两个变量i和j,j先从右向左遍历,找到第一个比base小的数就停止,i再从左向右便利找到第一个比base大的数停止 (3)交换i和j指向的元素 (4)直到i和j指向同一个元素,将这个元素与基准元素交换 递归求解即可 2. 时间复杂度:O(nlogn) 3. 代码实现 public class Qsort {public static void main(String[] args) {...

通俗易懂的最长回文串图解、说明及Java代码(中心扩散法和Manacher算法)【代码】【图】

1. 回文串 作为程序员,回文串这个词已经见怪不怪了,就是一个字符串正着读和反着读是一样的,形式如abcdcba、bbaabb。这里涉及到奇回文和偶回文,奇回文指回文串的字符数是奇数,偶回文指回文串的字符数是偶数。前面举的abcdcba就是奇回文,bbaabb就是偶回文。判断一个字符串是否是回文串很简单,只要从字符串的两端开始往中间扫描,全部匹配成功则是回文串,只要有一次匹配失败,那么就不是回文串。代码如下 // 没有对字符串为nu...

判断两个数的最大公约数算法JAVA代码

package suxueyuanli; import java.util.Scanner; public class Gcd {public static void main(String[] args) { System.out.println("请输入两个正整数:"); @SuppressWarnings("resource") Scanner scan = new Scanner(System.in); @SuppressWarnings("resource") Scanner scan2=new Scanner(System.in); int X=scan.nextInt(); int Y=scan2.nextInt(); int sum=0; for(int i=1;i<X;i++) { sum=X/i; if(X%i==0...

JAVA代码实现二叉树的前序、中序、后序遍历【代码】

二叉树的遍历 二叉树的遍历分为前序、中序和后序。可以通过遍历父节点的顺序来区别。前序遍历的顺序是父节点–左子节点–右子节点;中序遍历的顺序是左子节点–父节点–右子节点;后序遍历的顺序是左子节点–右子节点–父节点。通过递归的方式可以将其实现。我主要写了以下几个方法二叉树的前序、中序和后序遍历; 按节点编号顺序插入节点; 根据编号前序、中序和后序查找对应的节点package com.tree.binnaryTree;/** 二叉树的前序...

国密算法Java代码的标准实现【代码】【图】

前一阵子做的项目,越来越多的金融类应用使用国密算法进行加解密的运算。国密即国家密码局认定的国产密码算法。主要有SM1,SM2,SM3,SM4。密钥长度和分组长度均为128位。SM1 为对称加密。其加密强度与AES相当。该算法不公开,调用该算法时,需要通过加密芯片的接口进行调用。SM2为非对称加密,基于ECC。该算法已公开。由于该算法基于ECC,故其签名速度与秘钥生成速度都快于RSA。ECC 256位(SM2采用的就是ECC 256位的一种)安全强度...