C语言如何实现短字符串压缩


这篇文章主要讲解了“C语言如何实现短字符串压缩”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C语言如何实免费云主机域名现短字符串压缩”吧!开门见山,我们使用一段比较短的文本:Narrator: It is raining today. So, Peppa and George cannotplay outside.Peppa: Daddy, it’s stopped raining.使用ZSTD与LZ4分别压缩一下上面这段短文本。下面分别是它们的压缩结果。ZSTD:LZ4:对短文本的压缩,zstd的压缩率很低,lz4压缩后的文本长度尽然超过了原有字符串的长度。这是为什么?说实话在这之前我也没想到。引用两位大佬的名言:Are you ok?What’s your problem?从上面的结果可以得知,任何压缩算法都有它的使用场景,并不是所有长度的字符串都适合被某种算法压缩。一般原因是通用压缩算法维护了被压缩字符串的,用于字符串还原的相关数据结构,而这些数据结构的长度超过了被压缩短字符串的自身长度。那么问题来了,“我真的有压缩短字符串的需求,我想体验压缩的极致感,怎么办?”。短字符压缩算法它来了。这里挑选了3种比较优异的短字符压缩算法,分别是smaz,shoco,以及压轴的unisox2。跟前两章一样,还是从压缩率,压缩和解压缩性能的角度,一起看看他们在短字符压缩场景的各自表现吧。1、Smaz的压缩和解压缩执行结果如下:通过smaz压缩后的短字符串长度为77,和源字符串相比,减少了30Byte。2、Smaz的压缩和解压缩性能结果如何?压缩性能在40w条/S,解压在百万级,好像还不错哈!1、Shoco的压缩和解压缩执行结果如下:通过shoco压缩后的短字符串长度为86,和源字符串相比,减少了21Byte。压缩率比smaz要低。2、Shoco的压缩和解压缩性能执行结果如何呢?holy shit!压缩和解压缩居然都达到了惊人的百万级。就像算法作者们自己说的一样:“在长字符串压缩领域,shoco不想与通用压缩算法竞争,我们的优势是短字符的快速压缩,虽然压缩率很烂!”。这样说,好像也没毛病。我们再来看看unisox2呢。1、Unisox2的压缩和解压缩结果如下:通过Unisox2压缩后的短字符串长度为67,和源字符串相比,减少了40Byte,相当于是打了6折啊!不错不错。2、Unisox2的压缩和解压缩性能Unisox2的压缩能力目前来看是三者中最好的,如果他的压缩和解压性能也不错的话,那就真的就比较完美了。再一起看看Unisox2的压缩和解压性能吧!执行结果如下:事与愿违,Unisox2虽然有三个算法中最好的压缩率,可是却也拥有最差的压缩和解压性能。感谢各位的阅读,以上就是“C语言如何实现短字符串压缩”的内容了,经过本文的学习后,相信大家对C语言如何实现短字符串压缩这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是百云主机,小编将为大家推送更多相关知识点的文章,欢迎关注!

相关推荐: 怎么使用js实现计算器和计时器功能

本篇内容主要讲解“怎么使用js实现计算器和计时器功能”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么使用js实现计算器和计时器功能”吧!完成简单的计算器效果图制作一个计数器 如图,点击开始从1开免费云主机域名始计…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 03/28 12:10
下一篇 03/28 12:10

相关推荐