Java-给定一个字符串,如何按字母顺序排列其所有字符以生成新字符串?
例如,如果我以字符串“dcab”开头,我需要一个函数,该函数接受该字符串并从中生成字符串“abcd”。同样,“猫”应该产生“行为”。我在想一个有效的方法来做这件事。谢谢你的帮助Java-给定一个字符串,如何按字母顺序排列其所有字符以生成新字符串?,java,string,performance,algorithm,sorting,Java,String,Performance,Algorithm,Sorting,例如,如果我以字符串“dcab”开头,我需要一个函数,该函数接受该字符串并从中生成字符串“abcd”。同样,“猫”应该产生“行为”。我在想一个有效的方法来做这件事。谢谢你的帮助 将字符串转换为字符数组 使用 将已排序的字符数组转换为新字符串 对效率不太确定,但这可能是最简单的实现。实现这一点的最快方法(特别是如果您有一个相当小的字母表要使用,而不是所有的Unicode)是执行一个 char[] array = str.toCharArray(); Arrays.sort(array) retur
对效率不太确定,但这可能是最简单的实现。实现这一点的最快方法(特别是如果您有一个相当小的字母表要使用,而不是所有的Unicode)是执行一个
char[] array = str.toCharArray();
Arrays.sort(array)
return new String(array);
请注意,对于非常大的字符串,这将比
Arrays.sort()
快得多,因为Arrays.sort()
是(IIRC)合并排序,因此它在O(n log n)
时间内运行,而鸽子洞排序在O(n+n)
时间内运行,其中,n
是元素的数量,n
是字母表元素的数量。数组。sort
将数组排序到位并返回void。此代码将不起作用。