gpt4 book ai didi

algorithm - 对 Burrows Wheeler 变换 (BWT) 算法的旋转字符串进行排序

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:50:58 28 4
gpt4 key购买 nike

我目前在 BWT 工作是为了好玩。 :-)

我学习了 BWT,我认为 BWT 在理论上并不复杂。但是,直到现在我还不知道如何在实际实现中实际对旋转的字符串进行排序。

我是否应该首先将所有旋转的字符串保存到一个数组中,以便我可以使用简单的排序算法(如冒泡排序、选择或其他)对它们进行排序?有人告诉我这是不好的做法,因为将 N 个元素保存到数组中需要更多次。

那么,如何在旋转字符串时对旋转后的字符串进行排序?

谁能回答这个问题,将不胜感激!

提前致谢!

汤普森

最佳答案

不是一个完整的答案,但是当我为客户端实现 BWT 算法时,我使用了提供的代码 here作为基地。

一项历史记录,C qsort 似乎比 C++ std::sort 算法快得多。 CodeGuru 上有人建议使用 std::stable_sort,这将性能推到了 C qsort 的水平。这是在 VC6 中。

同时运行测试以找到理想的字符串长度——排序不是线性的。我正在为传输协议(protocol)编写压缩例程,因此压缩必须足以收回成本。如果没记错的话,在一台 733MHz 的机器上工作了大约 4kb。

关于algorithm - 对 Burrows Wheeler 变换 (BWT) 算法的旋转字符串进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4143861/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com