【发布时间】:2021-03-28 00:34:05
【问题描述】:
所以我试图将此索引(int)和数据(字符串)实现为一个 Dictionary 类,该类采用上述类型的索引和数据。这是我的代码:
for (int i = 0; i < size; i++){
dict[i].setIndex(i);
for (int j = i; j <= size; j++){
dict[i].data += input[j];
}
}
此代码适用于
编辑:这里的大小变量是指 input.length()。
【问题讨论】:
-
A minimal reproducible example 而不是你的 sn-p 可能更有帮助。然而,一个蓝色的镜头:外循环迭代直到
size - 1:for (int i = 0; i < size; i++),但内循环直到size:for (int j = i; j <= size; j++){。在不知道其余部分的情况下,这可能是越界访问(或完全正确),但至少在我看来是可疑的。 -
没有办法让这个字典明显更快,也没有办法让它更节省空间,但是,要实现 Burrows-Wheeler Rotation,你不需要这个字典来对字符串的旋转进行排序(我假设你正在尝试这样做)。如果您打算对字符串的旋转进行排序,这是一个完全不同的问题。
-
@Svistunov 我正在使用 Dictionary 类中声明的堆排序对 Dictionary 进行排序。它工作正常。但问题在于这个特定的循环。
标签: c++ algorithm optimization burrows-wheeler-transform