【Linux】——压缩算法
一、LZ77算法 1、压缩原理 如果文件中有两块内容相同的话,那么只要知道前一块的位置和大小,我们就可以确定后一块的内容。所以我们可以用(两者之间的距离,相同内容的长度)这样一对信息,来替换后一块内容。由于(两者之间的距离,相同内容的长度)这一对信息的大小,小于被替换内容的大小,所以文件得到了压缩。 简单的讲, LZ 算法被认为是字符串匹配的算法。例如:在一段文本中某字符串经常出现,并且可以通过前面文本中出现的字符串指针来表示。当然这个想法的前提是指针应该比字符串本身要短。 例1:在上一段短语“字符串”经常出现,可以将除第一个字符串之外的所有用第一个字符串引用来表示从而节省一些空间。 例2:有一个文件的内容如下 http://jiurl. yeah . net http://jiurl. nease . net 其中有些部分的内容,前面已经出现过了,下面用()括起来的部分就是相同的部分。 http://jiurl. yeah .net ( http://jiurl. )nease( .net ) 我们使用 (两者之间的距离,相同内容的长度) 这样一对信息,来替换后一块内容。 http://jiurl. yeah .net (22,13)nease(23,4) (22,13)中,22为相同内容块与当前位置之间的距离,13为相同内容的长度。 (23,4)中