The Suffix Array (SA) is a fundamental data structure which is widely used in the applications such as string matching, text index and computation biology, etc. How to sort the suffixes of a string in lexicographical order is a primary problem in constructing SAs, and one of the widely used suffix sorting algorithms is qsufsort. However, qsufsort suffers one critical limitation that the order of suffixes starting with the same 2k characters cannot be determined in the kth round. To this point, in our paper, an efficient suffix sorting algorithm called dsufsort is proposed by overcoming the drawback of the qsufsort algorithm. In particular, our proposal maintains the depth of each unsorted portion of SA, and sorts the suffixes based on the depth in each round. By this means, some suffixes that cannot be sorted by qsufsort in each round can be sorted now, as a result, more sorting results in current round can be utilized by the latter rounds and the total number of sorting rounds will be reduced, which means dsufsort is more efficient than qsufsort. The experimental results show the effectiveness of the proposed algorithm, especially for the text with high repetitions.
['Zhan Peng', 'Yuping Wang', 'Xingsi Xue', 'Jingxuan Wei']
An Efficient Algorithm for Suffix Sorting