Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm Burrows-Wheeler变换(BWT)-存储数据_Algorithm_Burrows Wheeler Transform - Fatal编程技术网

Algorithm Burrows-Wheeler变换(BWT)-存储数据

Algorithm Burrows-Wheeler变换(BWT)-存储数据,algorithm,burrows-wheeler-transform,Algorithm,Burrows Wheeler Transform,使用BWT后,编码数据中需要哪组数据?我们需要对后缀数组进行编码(或导出)吗 输入: stackoverflow BWT输出: wtavrcfkle$soo 后缀数组: 13、2、3、7、9、4、10、5、11、8、0、1、6、12转换所需的全部是输出字符串(wtavrcfkle$soo在您的示例中)。转换所需的全部是输出字符串(wtavrcfkle$soo)您只需要传输BWT输出 这种转换的惊人之处在于,原始字符串可以仅从经过置换的输出字符串重建 包含执行此反转的示例代码 请注意,正常的操作模

使用BWT后,编码数据中需要哪组数据?我们需要对后缀数组进行编码(或导出)吗

输入:

stackoverflow

BWT输出:

wtavrcfkle$soo

后缀数组:


13、2、3、7、9、4、10、5、11、8、0、1、6、12
转换所需的全部是输出字符串(
wtavrcfkle$soo
在您的示例中)。转换所需的全部是输出字符串(
wtavrcfkle$soo

您只需要传输BWT输出

这种转换的惊人之处在于,原始字符串可以仅从经过置换的输出字符串重建

包含执行此反转的示例代码

请注意,正常的操作模式是在传输之前使用游程编码对BWT输出进行编码(或者尚未实现任何压缩)


转换的好处在于,它倾向于产生类似字符的长运行(如果源材料中有结构),因此运行长度编码工作良好。

您只需要传输BWT输出

这种转换的惊人之处在于,原始字符串可以仅从经过置换的输出字符串重建

包含执行此反转的示例代码

请注意,正常的操作模式是在传输之前使用游程编码对BWT输出进行编码(或者尚未实现任何压缩)


转换的好处在于,它往往会产生类似字符的长串(如果源材料中存在结构),因此运行长度编码工作良好。

要反转BWT,您只需要原始最后一个字符的索引,而不需要整个后缀数组。如果没有此索引,我相信选择任意索引将导致原始字符串的旋转版本


请注意,如果包含行尾代码(如示例中所示),则原始的最后一个字符是明显的,因此不需要单独提供索引…

要反转BWT,只需要原始的最后一个字符的索引,而不需要整个后缀数组。如果没有此索引,我相信选择任意索引将导致原始字符串的旋转版本


请注意,如果您包括一个行尾代码(如示例中所示),则原始的最后一个字符是明显的,因此不需要单独提供索引…

后缀数组仅用于计算bwt转换,转换完成后可以删除它

BWT("stackoverflow")="wtavrcfkle$soo"

UNBWT("wtavrcfkle$soo")="stackoverflow"

如果愿意,您还可以从转换后的输出中恢复后缀数组:)

后缀数组仅用于计算bwt转换,转换完成后可以删除它

BWT("stackoverflow")="wtavrcfkle$soo"

UNBWT("wtavrcfkle$soo")="stackoverflow"

如果愿意,还可以从转换后的输出恢复后缀数组:)

要清楚,后缀数组和BWT输出是相同的。如果查看示例中的后缀数组,它包含从BWT输入(从1开始)获取的BWT输出中的字母索引:13->w,2->t,3->a,等等。。。
使用后缀数组只是一种在线性时间内计算BWT输出的机制。传输后缀数组或BWT输出意味着传输相同的信息。

要清楚,后缀数组和BWT输出是相同的。如果查看示例中的后缀数组,它包含从BWT输入(从1开始)获取的BWT输出中的字母索引:13->w,2->t,3->a,等等。。。 使用后缀数组只是一种在线性时间内计算BWT输出的机制。发送后缀数组或BWT输出意味着发送相同的信息