2011-06-13 3 views
2

블록 정렬을 구현하려고합니다. Burrows Wheeler Transform에서 블록 정렬은 EOF가 S로 표시되지 않는 원래 문자열 S에 ak 크기의 AOF 문자를 추가해야합니다.Burrows Wheeler 변형에서 사용하는 EOF 문자는 무엇입니까?

하지만 이진 파일을 처리 할 것이기 때문에 비트가 없으므로 하나의 EOF 문자를 미리 선택할 수 없습니다.

어떻게 해결할 수 있습니까?

단계에서 접미어를 정렬하는 데 EOF 문자가 사용되므로 EOF 문자가 필요없는 접미사 트리를 정렬 할 수 있다는 내용을 읽었습니다. 대신 접미어 트리를 사용해야합니까?

답변

1

데이터 컨테이너의 길이를 사용하거나 가상 EOF 문자의 문자 위치를 추적하는 별도의 EOF 테이블을 사용하여 "가상"EOF를 만들 수 있습니다.

[다른 아이디어로 업데이트] ... 또 다른 옵션으로 EOF char를 선택하고 0x00 및 escape char를 0xFF라고 부릅니다. 귀하의 입력을 스캔하고 모든 0xFF와 0x00에 0xFF를 붙입니다. 즉, 단순히 그들을 피하십시오. 데이터를 다시 쓸 때 역순으로 수행하십시오.

+0

나는 그것이 무엇을 의미하는지 알고 있지만 이것은 다릅니다. S 문자열 뒤에 k 개의 EOF 문자가 추가되면 접미사가 정렬됩니다 (예 : EOF 문자 포함). – Erandros

+0

업데이트 된 답변보기; EOF char를 만들고 C 문자열의 특수 문자처럼 이스케이프 처리하십시오. –

+0

네 말이 맞아. 접미사 배열이나 접미어 트리를 사용하여 이스케이프 시퀀스를 사용해야합니다. – Erandros