Given two suffix arrays \(A_{1}\) and \(A_{2}\) for two sequences \(S_{1}\) and \(S_{2}\) it's not completely trivial to construct a single suffix array \(A\) for \(S=S_{1}\parallel S_{2}\) because of the boundary conditions. Instead, we don't build the data \(S=S_{1}\ ||\ S_{2}\) but rather let \(S_{1}^{\prime}=S_{1}\ ||\ S_{2}[uptoK]\) for some \(K\) greater than the longest substring match. Then we build the arrays on \(S_{1}^{\prime}\) and \(S_{2}\). To merge the arrays together we can remove the items from the first array after index \(|S_{1}|\) and merge-sort insert them into the second.
두 시퀀스 \(S_{1}\)와 \(S_{2}\)에 대한 두 접미사 배열 \(A_{1}\)와 \(A_{2}\)가 주어졌을 때, 경계 조건 때문에 \(S=S_{1}\parallel S_{2}\)에 대한 단일 접미사 배열 \(A\)를 구성하는 것은 완전히 간단하지 않습니다. 대신, 우리는 \(S=S_{1}\ ||\ S_{2}\) 데이터를 구축하지 않고, 가장 긴 부분 문자열 일치보다 큰 \(K\)에 대해 \(S_{1}^{\prime}=S_{1}\ ||\ S_{2}[uptoK]\)로 설정합니다. 그런 다음 \(S_{1}^{\prime}\)과 \(S_{2}\)에 대한 배열을 구축합니다. 배열을 함께 병합하기 위해 첫 번째 배열에서 인덱스 \(|S_{1}|\) 이후의 항목을 제거하고 이를 두 번째 배열에 병합 정렬 삽입할 수 있습니다.
두 시퀀스 \(S_{1}\) 및 \(S_{2}\)에 대한 두 접미사 배열 \(A_{1}\) 및 \(A_{2}\)가 주어졌을 때, 경계 조건 때문에 \(S=S_{1}\parallel S_{2}\)에 대한 단일 접미사 배열 \(A\)를 구성하는 것은 완전히 간단하지 않습니다. 대신, \(S=S_{1}\ ||\ S_{2}\) 데이터를 구축하는 대신 가장 긴 부분 문자열 일치보다 큰 \(K\)에 대해 \(S_{1}^{\prime}=S_{1}\ ||\ S_{2}[uptoK]\)를 사용합니다. 그런 다음 \(S_{1}^{\prime}\)와 \(S_{2}\)에 대한 배열을 구축합니다. 배열을 병합하기 위해 첫 번째 배열에서 인덱스 \(|S_{1}|\) 이후의 항목을 제거하고 두 번째 배열에 병합 정렬 삽입할 수 있습니다.