算法
相关算法纪要,以及介绍
CoderJu
这个作者很懒,什么都没留下…
展开
-
二叉排序树删除节点
/** * @Description 二叉排序树的节点 * @auther Eleven * @create 2020-04-09 20:43 **/public class Node { int value; Node left; Node right; public Node(int value) { this.value = val...原创 2020-04-09 22:09:19 · 965 阅读 · 0 评论 -
二叉排序树
二叉排序树二叉查找树、二叉搜索树 BST;对于二叉树中的任何非叶子节点 要求左子节点比当前节点值小,右子节点比当前节点值大。实现/** * @Description 二叉排序树的节点 * @auther Eleven * @create 2020-04-09 20:43 **/public class Node { int value; Node left; ...原创 2020-04-09 21:01:37 · 192 阅读 · 0 评论 -
赫夫曼编码进行压缩和解码
package com.eleven.binaryTree.huffman.code;import java.util.*;/** * @Description 用赫夫曼编码进行压缩和解码 * @auther Eleven * @create 2020-04-07 23:12 **/public class HuffManCodeCus { public static ...原创 2020-04-08 21:47:50 · 204 阅读 · 1 评论 -
数据压缩之使用赫夫曼编码
/** * @Description 用赫夫曼编码进行压缩 * @auther Eleven * @create 2020-04-07 23:12 **/public class HuffManCodeCus { public static void main(String[] args) { HuffManCodeCus huffManCodeCus = ne...原创 2020-04-08 00:24:56 · 107 阅读 · 0 评论 -
创建简单的赫夫曼树
概述赫夫曼树是一种最优二叉树,权值越大的节点离根节点越近的二叉树才是最优二叉树。创建赫夫曼树/** * @Description 赫夫曼树中的节点 * @auther Eleven * @create 2020-04-06 15:31 **/public class Node implements Comparable{ int value; Node lef...原创 2020-04-06 16:22:15 · 104 阅读 · 0 评论 -
堆排序
/** * @Description 堆排序 * 对排序是将集合转化成二叉树的一种排序方式 其中有大顶堆(每个结点的值都大于或等于其左右孩子结点的值)和 * 小顶对(每个结点的值都小于或等于其左右孩子结点的值),一般升序用大顶堆,降序用小顶堆 * @auther Eleven * @create 2020-04-05 21:57 **/public class HeadSort {...原创 2020-04-05 22:35:11 · 78 阅读 · 0 评论 -
二叉树的遍历、查找和删除
/** * @Description 定义一个二叉树 * @auther Eleven * @create 2020-04-05 19:27 **/public class BinaryTree { TreeNode rootNode; public void setRootNode(TreeNode rootNode) { this.rootNode...原创 2020-04-05 20:54:26 · 177 阅读 · 0 评论 -
基数排序
/** * @Description 基数排序 * 就是先将对应的数据的从最低位的数据往最高位排序 * 一次将对应的数据放到对应的容器中 * @auther Eleven * @create 2020-04-05 15:22 **/public class RadixSort { public static void main(String[] args) { ...原创 2020-04-05 16:39:21 · 84 阅读 · 0 评论 -
归并排序
/** * @Description 归并排序 * 递归排序就是在逻辑上将一个数组分成两个数组,再将两个数组再各自拆分成两个数组, * 以此类推,然后再进行排序 * @auther Eleven * @create 2020-04-05 14:02 **/public class MergeSort { public static void main(String[] ar...原创 2020-04-05 14:54:55 · 176 阅读 · 0 评论 -
简单的选择排序
/** * @Description 选择排序,就是设定某个元素为当前集合的最小值,然后将当前元素所在位置的后面的所有 * 元素与这个元素比较,如果后面某个元素比这个元素小,就将当前元素和后面一个元素替换位置 * @auther Eleven * @create 2020-04-05 13:11 **/public class SelectSort { public stati...原创 2020-04-05 13:22:19 · 120 阅读 · 0 评论 -
希尔排序
public class ShellSort { public static void main(String[] args) { ShellSort shellSort = new ShellSort(); int[] arr = new int[]{1,9,5,2,6,7,10,11}; System.out.println(Array...原创 2020-04-05 10:56:33 · 110 阅读 · 0 评论 -
简单的插入排序
/** * @Description 插入排序 * 插入排序是从前往后分段排序的算法,已经经过排序部分都是有序的 * @auther Eleven * @create 2020-04-04 21:58 **/public class insertSort { public static void main(String[] args) { int[] arr ...原创 2020-04-04 22:44:53 · 169 阅读 · 0 评论 -
简单的快速排序
/** * @Description 简单的快速排序 * @auther Eleven * @create 2020-04-04 20:46 **/public class QuickSort { public static void main(String[] args) { int[] arr = new int[]{8,9,5,2,6,7,10,11}; ...原创 2020-04-04 21:54:10 · 133 阅读 · 0 评论 -
简单的冒泡排序算法
/** * @Description 实现一个简单的冒泡排序算法 * 所谓的冒泡排序就是指集合中的元素两两比较,如果前面的比后面的大就交换彼此的位置,交换后继续比较 * @auther Eleven * @create 2020-04-04 20:24 **/public class BubbleSort { public static void main(String[] a...原创 2020-04-04 20:35:09 · 197 阅读 · 0 评论 -
简单的斐波那契数列和汉诺塔游戏
斐波那契数列指的是这样一个数列:这个数列从第3项开始,每一项都等于前两项之和。汉诺塔游戏汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘/** *...原创 2020-04-04 19:26:07 · 652 阅读 · 0 评论 -
简单的双向循环列表
/** * @Description 实现一个简单的双向循环列表 在改列表中,每个node都会记录前一个元素和后一个元素的地址 * @auther Eleven * @create 2020-04-03 23:08 **/public class DoubleLoopNode { //记录前一个元素 DoubleLoopNode pre; //记录下一个元素 ...原创 2020-04-03 23:16:50 · 365 阅读 · 0 评论 -
简单的循环链表
/** * @Description 定义一个循环链表 * @auther Eleven * @create 2020-04-03 21:33 **/public class LoopNode { //用于存储链表里面的数据 int data; //这里如果是定义一个单独的node时,要将这个指向自身 LoopNode next = this; ...原创 2020-04-03 22:39:39 · 108 阅读 · 0 评论 -
简单的单链表
/** * @Description 定义一个单链表 * @auther Eleven * @create 2020-04-03 21:33 **/public class Node { //用于存储链表里面的数据 int data; //用于存储连接表中下一个node的地址 Node next; //用于初始化的时候给node中保存数据 ...原创 2020-04-03 22:26:26 · 139 阅读 · 0 评论 -
基于数组实现简单的队列
/** * @Description 基于数组实现简单的队列(先进先出) * @auther Eleven * @create 2020-04-02 23:40 **/public class MyQueue { int[] elements; public MyQueue() { //初始化的时候定义数组长度为0,防止下面调用的时候报空指针异常 ...原创 2020-04-03 00:08:03 · 129 阅读 · 0 评论 -
简单的栈结构
/** * @Description 实现一个简单的栈结构,(先进后出) * 包括压栈操作、弹出栈、查找栈顶的数据、判断栈是否为空 * @auther Eleven * @create 2020-04-02 23:04 **/public class MyStack { int[] elements; public MyStack() { //初始化的...原创 2020-04-02 23:36:26 · 152 阅读 · 0 评论 -
二分法查找的实现
/** * @Description 二分法查找的实现 * 简单的解释就是说把要查找的目标对象首先和数字最中的数字对,如果比这个数字大,则查找左侧,如果比这个数字小则查找右侧 * 再按照以上逻辑进行从中间切分判断查找左边还是右边从而缩小查找范围 * @auther Eleven * @create 2020-04-02 22:40 **/public class BinarySear...原创 2020-04-02 22:59:14 · 175 阅读 · 0 评论