
算法
itsoft2006
技术80,性格80,运气80
展开
-
LZW压缩算法——简明原理与实现
LZW和哈夫曼编码一样,是无损压缩中的一种。该算法通过建立字典,实现字符重用与编码,适用于source中重复率很高的文本压缩。本文首先讲下LZW的编解码原理,然后给出LZW的实现code。*********************原理*********************编码:编码0-255用来存储Ascii码为[0,255]的字符,放在字典里。编码转载 2016-06-15 12:38:10 · 6018 阅读 · 0 评论 -
哈夫曼算法原理
1952年, David A. Huffman提出了一个不同的算法,这个算法可以为任何的可能性提供出一个理想的树。香农-范诺编码(Shanno-Fano)是从树的根节点到叶子节点所进行的的编码,哈夫曼编码算法却是从相反的方向,暨从叶子节点到根节点的方向编码的。为每个符号建立一个叶子节点,并加上其相应的发生频率当有一个以上的节点存在时,进行下列循环:把这些节点作为带权值的二叉树的根节转载 2016-06-15 12:40:16 · 3692 阅读 · 0 评论 -
JPEG压缩原理
本文介绍JPEG压缩技术的原理,对于DCT变换、Zig-Zag扫描和Huffman编码,给出一个较为清晰的框架。1. JPEG压缩的编解码互逆过程:编码解码2. 具体过程:(这里仅以编码为例,解码过程为其逆过程) A.转载 2016-06-15 12:41:49 · 1153 阅读 · 0 评论 -
香农-范诺算法(Shannon-Fano coding)原理
和Huffman-Tree一样,Shannon-Fano coding也是用一棵二叉树对字符进行编码。但在实际操作中呢,Shannon-Fano却没有大用处,这是由于它与Huffman coding相比,编码效率较低的结果(或者说香农-范诺算法的编码平均码字较大)。但是它的基本思路我们还是可以参考下的。根据Wikipedia上面的解释,我们来看下香农范诺算法的原理:Sh转载 2016-06-15 12:44:36 · 11302 阅读 · 0 评论 -
软件加密技术和注册机制加密基础
本文是一篇软件加密技术的基础性文章,简要介绍了软件加密的一些基本常识和一些加密产品,适用于国内软件开发商或者个人共享软件开发者阅读参考。 1、加密技术概述 一个密码系统的安全性只在于密钥的保密性,而不在算法的保密性。 对纯数据的加密的确是这样。对于你不愿意让他看到这些数据(数据的明文)的人,用可靠的加密算法,只要破解者不知道被加密数据的密码,他就不可解读这些数据。转载 2016-06-15 12:50:27 · 1241 阅读 · 0 评论 -
二叉树的非递归遍历
上一节二叉树的递归遍历中简单介绍了二叉树的递归遍历的实现方式,本节主要介绍二叉树的非递归遍历实现,继续引用上节的例子来说明下。一.先序遍历二叉树先序遍历的访问顺序为:根结点->左孩子->右孩子。简单的说,对于任意一个结点,均可以看作是根结点,直接对其访问,如果访问完成后,左孩子不为空,则可以将该左孩子再次看成一个新的根结点,那么就又回到开始,访问根结点,访问左孩子,如果左孩转载 2016-06-15 13:00:48 · 1446 阅读 · 0 评论 -
二叉树的递归遍历
所谓二叉树的遍历,本质上就是沿某条搜索路径访问树中的每个结点,使得每个节点均被访问一次,而且仅被访问一次。由二叉树的基本定义可以知道,遍历一颗二叉树首先必须决定对根结点(N),左子树(L),右子树(R)的访问顺序,按照先遍历左孩子再遍历右孩子的原则,常见的遍历次序有先序遍历(NLR),中序遍历(LNR)和后序遍历(LRN)三种遍历算法。在这里使用做个简单的例子来说明下。转载 2016-06-15 13:01:14 · 1243 阅读 · 0 评论 -
二叉树的基本概念
一.定义二叉树是另一种树形结构,其特点是每个结点至多只有两颗子树(即二叉树中不存在度大于2的结点),并且,二叉树有左右之分,其次序不能任意颠倒。 与树类似,二叉树同样采用递归的形式定义。 二叉树是n(n≥0)个结点的有限集合:或者为空二叉树,即n=0;或者由一颗根几点和两个互不相交的被称为根的左子树和右子树组成,左子树和右子树又分别是一颗二叉树。二叉树是有序树,若将转载 2016-06-15 13:02:04 · 1886 阅读 · 0 评论