Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java-给定一个字符串,如何按字母顺序排列其所有字符以生成新字符串?_Java_String_Performance_Algorithm_Sorting - Fatal编程技术网

Java-给定一个字符串,如何按字母顺序排列其所有字符以生成新字符串?

Java-给定一个字符串,如何按字母顺序排列其所有字符以生成新字符串?,java,string,performance,algorithm,sorting,Java,String,Performance,Algorithm,Sorting,例如,如果我以字符串“dcab”开头,我需要一个函数,该函数接受该字符串并从中生成字符串“abcd”。同样,“猫”应该产生“行为”。我在想一个有效的方法来做这件事。谢谢你的帮助 将字符串转换为字符数组 使用 将已排序的字符数组转换为新字符串 对效率不太确定,但这可能是最简单的实现。实现这一点的最快方法(特别是如果您有一个相当小的字母表要使用,而不是所有的Unicode)是执行一个 char[] array = str.toCharArray(); Arrays.sort(array) retur

例如,如果我以字符串“dcab”开头,我需要一个函数,该函数接受该字符串并从中生成字符串“abcd”。同样,“猫”应该产生“行为”。我在想一个有效的方法来做这件事。谢谢你的帮助

  • 将字符串转换为字符数组
  • 使用
  • 将已排序的字符数组转换为新字符串

  • 对效率不太确定,但这可能是最简单的实现。

    实现这一点的最快方法(特别是如果您有一个相当小的字母表要使用,而不是所有的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。此代码将不起作用。