![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
算法
riapgypm
这个作者很懒,什么都没留下…
展开
-
哈夫曼树完成文件的压缩和解压
1、在这里只有工具类,依赖的树节点和树的类,见另一篇博客(https://blog.csdn.net/riapgypm/article/details/106103996)里的定义2、压缩工作类的实现如下:package com.cn.test.tree.zip;import java.io.*;import java.util.*;/** * 压缩工具类 */public class ZipFileUtil { public static Map<Integer原创 2020-06-14 17:14:44 · 486 阅读 · 1 评论 -
哈夫曼树完成字符串的压缩和解压
1、实现的压缩工具类package com.cn.test.tree.zip;import java.util.*;/** * 压缩工具类 */public class ZipUtil { public static Map<Integer,String> huffCodes = new HashMap<>(); public static Map<String,Integer> reverseHuffCodes = new ...原创 2020-06-14 17:14:28 · 611 阅读 · 1 评论 -
构建哈夫曼树
一、哈夫曼树也叫赫夫曼树,是一颗权值路径最小的二叉树。 我们用的测试数据是 :{6,32,15,21,3,43,69,52,39,70};二、构建完的树如下图:三、代码实现package com.cn.test.tree;import java.util.*;public class HalfManTree { public static void main(String[] args) { //构建哈夫曼树的节点 int[] da..原创 2020-06-14 17:14:59 · 1070 阅读 · 0 评论 -
堆排序的实现
package com.cn.test.tree;import java.util.Arrays;public class HeapSortSelf { public static void heapSort(int[] data){ //1、构建大顶堆 //第一个非叶子节点的坐标 int a = data.length/2 -1 for(int i = data.length/2-1;i>=0;i--){ ...原创 2020-06-14 17:16:21 · 171 阅读 · 0 评论 -
斐波那契查询方法
package com.cn.test.search;import java.util.Arrays;public class FibonacciSearch { private static int maxSize = 20; private static int[] fib(){ int[] f = new int[maxSize]; ...原创 2020-06-14 17:15:43 · 197 阅读 · 0 评论 -
基数排序的java实现
package com.cn.data.structure.linklist;import java.util.Arrays;public class BaseNumberSort { /** * 1、先定义10个桶,用来存储0-9的数字 * 2、定义一个数据,存储10个桶的下标 * @param data */ publi...原创 2020-06-14 17:13:20 · 89 阅读 · 0 评论 -
排序算法之归并排序
归并排序:采用分治策略的一种排序算法,先把要排序的数组分成两个有序的序列,然后再比较两个有序序列的最小值进行排序。排序的时间复杂度是O(nlgn)。下面是用java实现的代码/** * 归并排序 * */public class MergeSort { //两个有序数组的归并 public void merge(Integer begin,Integer end,I原创 2017-10-11 15:29:15 · 267 阅读 · 0 评论 -
算法之最大子数组
用了两种方式来实现最大子数组法,一种是递归的分治法,另一种非递归的线性法。原创 2017-10-23 18:09:34 · 268 阅读 · 0 评论 -
八皇后遍历共有92种方式
package com.cn.test.algorithm;public class Queue8 { int[][] chessboard = new int[8][8]; int count = 0; public void printChessboard(){ for (int [] one :chessboard){ ...原创 2020-06-14 17:11:09 · 385 阅读 · 0 评论 -
逆波兰表达式java实现
package com.cn.test.algorithm;import java.util.ArrayList;import java.util.List;import java.util.Stack;public class NiBoLan { public List<String> expression2List(String expression){ ...原创 2020-06-14 17:12:55 · 286 阅读 · 0 评论