bwt - search 算法
本文关于之前做过一个 bwt-search 算法。
在介绍 bwt-search 算法之前,先介绍本文的基础,bwt 算法。
bwt 是一个压缩算法,它比较特殊,压缩后字符串的长度没有减少,而是和原来一样长。它将字符串顺序右移/左移后,得到 n 个字符串,将它们按字典序排序后,按序取出这 n 个字符串的最后一个字符,作为压缩的结果。如,对于字符串 abcada ,将移位后得到的所有字符串按字典序增序排列如下:
aabcad
abcada
adaabc
bcadaa
cadaab
daabca
顺序取每个字符串的最后一个字符,构成字符串 L = dacaba 作为压缩结果。
顺序取每个字符串的第一个字符,构成字符串 F = aaabcd。
这个压缩算法特殊在于,某些出现频次很高的单词,会导致字符在压缩结果中汇集。
考虑一个字符串:
xxxx the xxx the xxxx the xxxx thexxxx
这个字符串中有很多个 “the” 字符串,那么在移位后得到的 n 个字符串排序后,我们可以预计,会出现下面的局势:
................
................
he..........t
he..........t
he..........t
he..........t
因为所有的字符串按字典序排列,则移动某些位后,会形成以 he 开关的字符串位置挨在一起,那么,由于 t 在 he 的前面,所以,它们都会被排到最后面去。即,在压缩结果, t 被汇聚在一起了。
由于 bwt 算法的输出 L 里面存在字符汇聚,则如果再使用其它的压缩算法(如哈夫曼算法)对 L 压缩,则会收获到比较大的压缩比。
我们先考虑如何由 L 恢复出原字符串。
bwt - search 算法相关推荐
- C语言实现跳转搜索jump search算法(附完整源码)
跳转搜索jump search算法 跳转搜索jump search算法的完整源码(定义,实现,main函数测试) 跳转搜索jump search算法的完整源码(定义,实现,main函数测试) #inc ...
- C语言实现斐波那契搜索Fibonacci search算法(附完整源码)
斐波那契搜索Fibonacci search算法 斐波那契搜索Fibonacci search算法的完整源码(定义,实现,main函数测试) 斐波那契搜索Fibonacci search算法的完整源码 ...
- C语言改造二分法(Modified Binary Search)算法(附完整源码)
改造二分Modified Binary Search算法 改造二分(Modified Binary Search)算法的完整源码(定义,实现,main函数测试) 改造二分(Modified Binar ...
- beam search算法
转载 https://blog.csdn.net/xyz1584172808/article/details/89220906 https://blog.csdn.net/batuwuhanpei/a ...
- selective search算法步骤
selective search算法流程如下: step1:使用"Felzenswalb and Huttenlocher"算法获取原始分割区域R={r1,r2,-,rn} ste ...
- Selective Search算法-候选框生成
Selective Search算法-候选框生成 相比于滑动搜索策略,Selective Search算法采用启发式的方法,过滤掉图像中很多断裂的子区域,候选生成所需的目标区域(Region Prop ...
- 计算机视觉目标检测之selective search算法
关于two stage目标检测算法中的SSD在目标选取阶段的使用的ss算法的一些学习资料 简介 一张图像中包含的信息非常丰富,图像中的物体有不同的形状.尺寸.颜色.纹理,而且物体间还有层次(hiera ...
- Beam search 算法的通俗理解
Beam search 算法在文本生成中用得比较多,用于选择较优的结果(可能并不是最优的).接下来将以seq2seq机器翻译为例来说明这个Beam search的算法思想. 在机器翻译中,beam s ...
- 禁忌搜索(Tabu Search)算法及python实现
禁忌搜索(Tabu Search)算法及python实现 版权声明:本文为博主原创文章,博客地址:https://blog.csdn.net/adkjb,未经博主允许不得转载. 禁忌搜索(Tabu S ...
最新文章
- js增加属性_前端js基础2
- 【408预推免复习】操作系统之存储器管理
- 我收集的学习网址,O(∩_∩)O~
- python applymap_运行Python Applymap需要时间
- 分享到JavaScript实现
- windows下tomcat7+nginx1.8负载均衡
- java 打包工具_Java打包Windows安装程序
- hdu-1695 GCD(莫比乌斯反演)
- mysql datetime设置now()无效,直接用程序设置默认值比较好
- Mac上如何重启或结束Finder进程?
- javascript拖拽之从浏览器外拖拽(drag)
- 视频教程-2020年软考系统分析师--案例分析真题精解视频课程-软考
- 南京信息工程大学eduroam使用方法
- 物 理 学 简 介(三)
- PyTorch实例:用ResNet进行交通标志分类
- 电路中负电源的注意事项
- 持续造风,快手为品牌、商家提供“保姆式”服务
- 怎么将html转换为mfc,MFC 创建HTML格式数据并显示
- 上班一个月挣10万,居然全靠它...
- 计算机专业创新点子借鉴,[在计算机教学中应如何开展创新教育]大学生创新创业点子300...
热门文章
- php mysql 安全防范,PHP+MYSQL注入实例与防范措施总结
- ios获取手机序列号_iOS-获取手机唯一标识符(获取苹果手机IMEI,获取苹果手机MAC)...
- openwrt无wan6口,如何设置ipv6
- Flutter - 基础Widget
- X,Y电容(与漏电流关系)
- 一个百度员工的离职感悟:听话/出活/忍耐/量化
- 四川农业大学ZigBee复习重点
- sangerbox制作heapmap_使用highmaps制作中国地图
- tpac100控制器设置教程_ac100如何设置?
- 【最新】正则表达式:识别QQ号码,Email电子邮箱(163邮箱、QQ邮箱、谷歌邮箱、雅虎邮箱等等)