本文关于之前做过一个 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 算法相关推荐

  1. C语言实现跳转搜索jump search算法(附完整源码)

    跳转搜索jump search算法 跳转搜索jump search算法的完整源码(定义,实现,main函数测试) 跳转搜索jump search算法的完整源码(定义,实现,main函数测试) #inc ...

  2. C语言实现斐波那契搜索Fibonacci search算法(附完整源码)

    斐波那契搜索Fibonacci search算法 斐波那契搜索Fibonacci search算法的完整源码(定义,实现,main函数测试) 斐波那契搜索Fibonacci search算法的完整源码 ...

  3. C语言改造二分法(Modified Binary Search)算法(附完整源码)

    改造二分Modified Binary Search算法 改造二分(Modified Binary Search)算法的完整源码(定义,实现,main函数测试) 改造二分(Modified Binar ...

  4. beam search算法

    转载 https://blog.csdn.net/xyz1584172808/article/details/89220906 https://blog.csdn.net/batuwuhanpei/a ...

  5. selective search算法步骤

    selective search算法流程如下: step1:使用"Felzenswalb and Huttenlocher"算法获取原始分割区域R={r1,r2,-,rn} ste ...

  6. Selective Search算法-候选框生成

    Selective Search算法-候选框生成 相比于滑动搜索策略,Selective Search算法采用启发式的方法,过滤掉图像中很多断裂的子区域,候选生成所需的目标区域(Region Prop ...

  7. 计算机视觉目标检测之selective search算法

    关于two stage目标检测算法中的SSD在目标选取阶段的使用的ss算法的一些学习资料 简介 一张图像中包含的信息非常丰富,图像中的物体有不同的形状.尺寸.颜色.纹理,而且物体间还有层次(hiera ...

  8. Beam search 算法的通俗理解

    Beam search 算法在文本生成中用得比较多,用于选择较优的结果(可能并不是最优的).接下来将以seq2seq机器翻译为例来说明这个Beam search的算法思想. 在机器翻译中,beam s ...

  9. 禁忌搜索(Tabu Search)算法及python实现

    禁忌搜索(Tabu Search)算法及python实现 版权声明:本文为博主原创文章,博客地址:https://blog.csdn.net/adkjb,未经博主允许不得转载. 禁忌搜索(Tabu S ...

最新文章

  1. js增加属性_前端js基础2
  2. 【408预推免复习】操作系统之存储器管理
  3. 我收集的学习网址,O(∩_∩)O~
  4. python applymap_运行Python Applymap需要时间
  5. 分享到JavaScript实现
  6. windows下tomcat7+nginx1.8负载均衡
  7. java 打包工具_Java打包Windows安装程序
  8. hdu-1695 GCD(莫比乌斯反演)
  9. mysql datetime设置now()无效,直接用程序设置默认值比较好
  10. Mac上如何重启或结束Finder进程?
  11. javascript拖拽之从浏览器外拖拽(drag)
  12. 视频教程-2020年软考系统分析师--案例分析真题精解视频课程-软考
  13. 南京信息工程大学eduroam使用方法
  14. 物 理 学 简 介(三)
  15. PyTorch实例:用ResNet进行交通标志分类
  16. 电路中负电源的注意事项
  17. 持续造风,快手为品牌、商家提供“保姆式”服务
  18. 怎么将html转换为mfc,MFC 创建HTML格式数据并显示
  19. 上班一个月挣10万,居然全靠它...
  20. 计算机专业创新点子借鉴,[在计算机教学中应如何开展创新教育]大学生创新创业点子300...

热门文章

  1. php mysql 安全防范,PHP+MYSQL注入实例与防范措施总结
  2. ios获取手机序列号_iOS-获取手机唯一标识符(获取苹果手机IMEI,获取苹果手机MAC)...
  3. openwrt无wan6口,如何设置ipv6
  4. Flutter - 基础Widget
  5. X,Y电容(与漏电流关系)
  6. 一个百度员工的离职感悟:听话/出活/忍耐/量化
  7. 四川农业大学ZigBee复习重点
  8. sangerbox制作heapmap_使用highmaps制作中国地图
  9. tpac100控制器设置教程_ac100如何设置?
  10. 【最新】正则表达式:识别QQ号码,Email电子邮箱(163邮箱、QQ邮箱、谷歌邮箱、雅虎邮箱等等)