2012-02-07 2 views

答えて

13
  1. 使用Arrays.sort(char[] a)
  2. が効率について

すぎてわからない新しい文字列にソートされた文字列を変換した文字列に文字列を変換しますが、これはおそらく最も簡単な実装です。 (あなたはかなり小さいで動作するようにアルファベットではなく、すべてのUnicodeのを持っている場合は特に)

+0

Genius。ありがとうございました。 – Tim

3
char[] array = str.toCharArray(); 
Arrays.sort(array) 
return new String(array); 
+2

'Arrays.sort'は配列をinplaceにソートし、voidを返します。このコードは動作しません。 –

+0

あなたはもちろん正しいですが、修正されました。 – zch

12

これを行うための最速の方法はPigeonhole sortを行うことであろう。 Arrays.sort()は(IIRC)マージソートですので、鳩の巣ソートnは数あるO(n + N)時間、で実行しながら、それは、O(n log n)時間で実行されるため、非常に大きな文字列のために、これは、Arrays.sort()よりもはるかに高速になることを

注意要素の数はNで、アルファベットの要素数です。

関連する問題