ストリーム圧縮アルゴリズムの最終的な排他的スキャン値はどうなりますか?
これは、すべての「A」文字を選択する例です。
シーケンス A:
Input: A B B A A B B A
Selection: 1 0 0 1 1 0 0 1
Scan: 0 1 1 1 2 3 3 3
0 - A
1 - A
2 - A
3 - A
シーケンス B (最後の値以外は同じ):
Input: A B B A A B B B
Selection: 1 0 0 1 1 0 0 0
Scan: 0 1 1 1 2 3 3 3
0 - A
1 - A
2 - A
3 - B
明らかに、2 番目の例は、これらのアドレスに書き込むスキャン値を単純なループで処理することに基づいて、誤った最終結果を示しています。
ここで何が欠けていますか?
アップデート:
スキャンアルゴリズムを理解しているので、次と同等のことを行います。
for (int i = 0; i < scan.length(); i++)
{
result[scan[i]] = input[i];
}
並行して、これには分散命令が含まれます。