Suffix array is a compact data structure for searching matched strings from text databases. It is an array of pointers and stores all suffixes of a text in lexicographic order. Because its memory requirement is less than tree structures, it is effective for large databases. Moreover, constructing the suffix array is used in the Block Sorting compression scheme. We compare algorithms for constructing suffix arrays on speed and required memory and propose a fast and memory efficient algorithm by combining them. It is effective when the length of repeated strings in a text is large.