【发布时间】:2012-02-29 05:51:08
【问题描述】:
例如,如果我从字符串“dcab”开始,我想要一个函数来获取该字符串并从中生成字符串“abcd”。同样,“猫”应该产生“行为”。我试图想出一种有效的方法来做到这一点。感谢您的帮助。
【问题讨论】:
标签: java string performance algorithm sorting
例如,如果我从字符串“dcab”开始,我想要一个函数来获取该字符串并从中生成字符串“abcd”。同样,“猫”应该产生“行为”。我试图想出一种有效的方法来做到这一点。感谢您的帮助。
【问题讨论】:
标签: java string performance algorithm sorting
Arrays.sort(char[] a)
不太确定效率,但这可能是最简单的实现。
【讨论】:
最快的方法是使用Pigeonhole sort。
请注意,对于非常大的字符串,这将比Arrays.sort() 快得多,因为Arrays.sort() 是(IIRC)合并排序,所以它运行在O(n log n) 时间,而鸽洞排序运行在O(n + N)时间,其中n 是元素的数量,N 是字母元素的数量。
【讨论】:
char[] array = str.toCharArray();
Arrays.sort(array)
return new String(array);
【讨论】:
Arrays.sort 对数组进行就地排序并返回 void。此代码将不起作用。