Improvement of Practical Suffix Sorting Algorithm

실용적인 접미사 정렬 알고리즘의 개선

  • 정태영 (서울대학교 전기컴퓨터공학부) ;
  • 이태형 (서울대학교 전기컴퓨터공학부) ;
  • 박근수 (서울대학교 전기컴퓨터공학부)
  • Published : 2009.04.15

Abstract

The suffix array is a data structure storing all suffixes of a string in lexicographical order. It is widely used in string problems instead of the suffix tree, which uses a large amount of memory space. Many researches have shown that not only the suffix array can be built in O(n), but also it can be constructed with a small time and space usage for real-world inputs. In this paper, we analyze a practical suffix sorting algorithm due to Maniscalco and Puglisi [1], and we propose an efficient algorithm which improves Maniscalco-Puglisi's running time.

접미사 배열은 주어진 문자열 내의 모든 접미사를 사전식 순서로 저장하는 자료 구조로, 많은 저장 공간을 사용하는 접미사 트리를 대체하면서 여러 가지 문자열 관련 문제에 사용되고 있다. 이를 O(n) 시간 내에 생성하는 것과 더불어, 실세계 입력에 대하여 작은 시간과 공간을 사용하여 구성하는 알고리즘들 역시 제안되어 왔다. 본 논문은 Maniscalco와 Puglisi[1]가 제안한 접미사 정렬 알고리즘을 분석하고, 프로그램의 수행 시간을 개선한 새로운 알고리즘을 제안한다.

Keywords

References

  1. Maniscalco, M., and Puglisi, S. aster lightweight suffix array construction. In Proceedings of 17th Australasion Workshop on Combinatorial Algorithms, pp. 16-29.2006.
  2. Manber, U., and Myer, G. Suffix arrays: a new method for on-line string searches. SIAM Journal of Computing 22, 5, pp. 935-948, 1993. https://doi.org/10.1137/0222058
  3. Karkkainen, J., Sanders, P., and Burkhardt, S. Linear work sufix aray construction. Journal of the ACM 53, 6, pp. 918-936, 2006. https://doi.org/10.1145/1217856.1217858
  4. Kim, D. K. Sim, J. S., Park, H., and Park, K. Constructing suffix arrays in linear time. Journal of Discrete Algorithms 3, 2-4, pp. 126-142. 2005. https://doi.org/10.1016/j.jda.2004.08.019
  5. Ko, P., and Aluru, S. Space efficient linear time construction of suffix array construction algorithms. ACM Computing Surveys 39, 2, 2007.
  6. Pglisi, S. J., Smyth, W. F., and Turpin, A. H. A taxonomy of suffix aray construction algorithms. ACM Computing Surveys 39, 2, 2007.
  7. Manzini, G., and Ferragina, P. Engineering a lightweight suffix array contruction algorithm. Algorithmica 40, 1, pp. 33-50. 2004. https://doi.org/10.1007/s00453-004-1094-1
  8. Itoh, H., and Tanska, H. An eficient method for in memory construction of suffix arrays. In Proceedings of the String Processing and Information Retrieval, p. 81. 1999. https://doi.org/10.1109/SPIRE.1999.796581
  9. Mori, y. Divsufsort (version 1.2.3). http://www.homepage3.nifty.com/wpage/software/livbdivsufsort.html, 2005.
  10. Bentley, J. L., and Mcllroy, M. D. Engineering a sort function. Sotware-Practice & Experience 23, 11, pp. 1249-1265, 1993. https://doi.org/10.1002/spe.4380231105
  11. Bentley, J. L., and Sedgewick, R. Fast algorithms for sorting and searching strings. In Proceedings of ACM-SLAM Symposium on Discrete Algorithms. pp. 360-369, 1997.