数据结构与算法
文章平均质量分 89
学Java去要饭
这个作者很懒,什么都没留下…
展开
-
面试高频——HashMap底层实现原理与源码剖析(JDK7、8对比)
前言 HashMap是基于哈希表的Map接口的实现,在数据结构中十分重要,用途十分广泛,与HashTable相比,它是线程不安全的,这就注定了HashMap的高效率和常用性。 待解决的问题 如果有一个长度为15的数组,存储着5个数据,我们现在要向数组中添加一个新的元素,要求数组中所有元素的值不能重复,该如何有效解决? 这个问题相对简单,我们可以对数组,数组进行遍历,判断数组中每个元素的值与当前元素是否相等,如果相等就不添加,不等就添加进数组,问题迎刃热解。 如果这个数组长度非常长,数据非常多,还能使用原创 2020-09-24 09:39:45 · 452 阅读 · 0 评论 -
数据结构——赫夫曼编码实现数据压缩与解压原理剖析,附源码(下)
↓↓↓↓↓↓ 基于赫夫曼编码的数据解压部分完结,下面是前半部分压缩链接 ↓↓↓↓↓↓。原创 2020-09-19 13:54:27 · 609 阅读 · 0 评论 -
数据结构——赫夫曼编码实现数据压缩与解压原理剖析,附源码(上)
前言 赫夫曼编码是可变字长编码(VLC)的一种。 Huffman于1952年提出一种编码方法,该方法完全依据字符出现概率来构造异字头的平均长 度最短的码字,有时称之为最佳编码,一般就称Huffman编码。下面引证一个定理,该定理保证了按字符出现概率分配码长,可使平均码长最短。 本期分析非常重要的赫夫曼编码实际应用,在数据压缩与解压方面十分重要!从底层原理入手,切合编码实现。 涉及知识点 Java编程基础 Comparable类Java比较器 数据结构中简单二叉树和赫夫曼树的构造原理 由于篇幅过长,本原创 2020-09-18 21:19:10 · 1107 阅读 · 0 评论 -
数据结构——HuffmanCode实现数据压缩与解压源代码
源代码 package org.superb.huffman; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOu原创 2020-09-18 20:56:22 · 317 阅读 · 0 评论