Observe that in the general case this algorithm is \(O(Nm\log(K))\) where \(N\) is the length of the dataset, \(m\) is the average length of a prefix match, and \(K\) is the number of splits. It is therefore incorrect to call this algorithm linear time in the general case, for ours it is. Because the length of the longest match is bounded above by the length of the longest sequence, as long as the size of the dataset is independent of the length of the longest sequence in the dataset, this algorithm remains efficient.
일반적인 경우 이 알고리즘은 \(O(Nm\log(K))\)입니다. 여기서 \(N\)은 데이터셋의 길이, \(m\)은 접두사 일치의 평균 길이, \(K\)는 분할의 수를 나타냅니다. 따라서 일반적인 경우 이 알고리즘을 선형 시간이라고 부르는 것은 잘못된 것입니다. 우리의 경우에는 그렇습니다. 가장 긴 일치의 길이가 가장 긴 시퀀스의 길이로 제한되기 때문에, 데이터셋의 크기가 데이터셋 내 가장 긴 시퀀스의 길이와 독립적이라면 이 알고리즘은 여전히 효율적입니다.
일반적인 경우 이 알고리즘은 \(O(Nm\log(K))\)이며, 여기서 \(N\)은 데이터 집합의 길이, \(m\)은 접두사 일치의 평균 길이, \(K\)는 분할 수입니다. 따라서 일반적인 경우 이 알고리즘을 선형 시간 알고리즘이라고 부르는 것은 올바르지 않으며, 우리의 경우에는 그렇습니다. 가장 긴 일치의 길이는 가장 긴 시퀀스의 길이로 상한이 정해져 있으므로 데이터 집합의 크기가 데이터 집합에서 가장 긴 시퀀스의 길이와 무관한 한 이 알고리즘은 효율적입니다.