BurrowsWheeler变换(BWT)的最佳排序算法

Nic*_*rin 3 java algorithm

Burrows Wheeler Transformation让我陷入了一些问题.这是一个大学项目,但这只是其中很小的一部分.整个项目由3种不同的算法组成,用于数据压缩.

我只想弄清楚什么是最节省内存和时间的排序算法用于Burrows Wheeler Transformation中的后缀排序?编码需要尽可能高效.

对于较小的数组,排序实际上并不会真正起作用,但是当我们正在压缩的文本文件变得越来越大时,使用低效排序算法所消耗的时间实际上会破坏时间和内存效率.

任何帮助将不胜感激,提前感谢!

编辑

我们用Java编写代码,只是意识到我从未提及过.

ric*_*ian 6

许多基于BWT的实用压缩工具都基于DivSufSortMSufSort.但是它们的O(n ^ 2)性能最差,你必须在排序前对数据使用一些预处理方法.

理论上,为了获得最佳时间/空间成本,请尝试使用sa-issa-ds.

如果您正在尝试自己编写后缀排序算法,我建议您从快速简单的QSufSort开始.

  • 其实Java并不慢:-) (2认同)