根据长度对字符串数组进行排序

密码战士

问题是根据字符串的长度对字符串数组进行排序。

例如

input = {"cat", "star", "act", "gid", "arts", "dog", "rats"}  
output = {"cat", "act", "gid", "dog", "star", "arts", "rats"}

我是使用插入排序(使用字符串的长度而不是字符串本身)来完成的。我的问题是:有更好的方法吗?

我想到的另一种方法是-使用aTreeMap将每个字符串及其长度存储为值(假设字符串在给定数组中是唯一的)。然后根据其值对其进行排序。运行时间为O(nlogn),空间复杂度为O(n)您认为这是更好的方法吗?

编辑:对不起,您没有提到此-我想不使用Arrays.sort()或自定义比较器来执行此操作

用于插入排序的代码示例:

public static String[] insertionSort(String[] arr) {
    for(int i=1;i<arr.length;i++) {
        int j = 0;
        for(;j<i;j++) {
            if(arr[j].length() > arr[j+1].length()) {
                String temp = arr[j];
                arr[j] = arr[j+1];
                arr[j+1] = temp;
            }
        }
    }
    return arr;
}

有许多更好的方法可以做到这一点。对于插入排序,我们说的是O(n ^ 2)。更好的排序算法将是诸如mergesort(更好的最坏情况)或quicksort(平均更好)之类的算法。由于这是基于长度的排序,因此可以采用多种方法。您将必须在某个时刻计算每个字符串的长度。您可以做的是创建一个整数数组,该数组对应于相同索引处的单词长度。然后,您可以在int上运行mergesort或quicksort,并确保同时翻转字符串。最终结果将是一个非递减的整数数组和一个非递减的字符串数组。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Scala根据令牌的长度对字符串进行排序

来自分类Dev

按元素长度对字符串数组进行排序

来自分类Dev

根据对象数组对字符串数组进行排序

来自分类Dev

根据数字数组对字符串数组进行排序

来自分类Dev

java根据库尔德字符对字符串数组进行排序

来自分类Dev

AWK按字符串长度对字符串数组进行排序

来自分类Dev

在C中,按字符串长度对字符串数组进行排序

来自分类Dev

根据字符串长度进行匹配

来自分类Dev

根据字符串的特定排列对字符串数组进行排序

来自分类Dev

根据字符串内容中的@number对字符串数组进行排序

来自分类Dev

当基数长度不同时,基数排序会错误地对字符串数组进行排序

来自分类Dev

R基函数根据长度对字符串向量进行排序

来自分类Dev

R基函数可根据长度对字符串向量进行排序

来自分类Dev

Java如何根据排序值对字符串数组进行排序?

来自分类Dev

如何对数组进行排序以便在顶部管理最大字符串长度?

来自分类Dev

如何使用Arrays.sort()按长度对字符串数组进行排序

来自分类Dev

使用jq按长度对数组中的字符串进行排序

来自分类Dev

使用IComparable <string>按长度对字符串数组进行排序

来自分类Dev

如何对数组进行排序以便在顶部管理最大字符串长度?

来自分类Dev

ruby / rails根据字符串数组对记录数组进行排序

来自分类Dev

使用字符串长度对ArrayList <String>进行排序

来自分类Dev

iOS-NSFetchRequest:对字符串长度进行排序

来自分类Dev

Java如何根据顺序值对字符串数组进行排序?

来自分类Dev

如何根据非标准字母对字符串数组进行排序?

来自分类Dev

根据用户输入对2D字符串数组进行排序?

来自分类Dev

根据react中字符串数组中指定的顺序对组件进行排序

来自分类Dev

根据字符串中存在的数字对String []数组进行排序

来自分类Dev

根据数字和字符串中出现的特定文本对数组进行排序

来自分类Dev

根据3条标准对Java字符串数组进行排序

Related 相关文章

  1. 1

    Scala根据令牌的长度对字符串进行排序

  2. 2

    按元素长度对字符串数组进行排序

  3. 3

    根据对象数组对字符串数组进行排序

  4. 4

    根据数字数组对字符串数组进行排序

  5. 5

    java根据库尔德字符对字符串数组进行排序

  6. 6

    AWK按字符串长度对字符串数组进行排序

  7. 7

    在C中,按字符串长度对字符串数组进行排序

  8. 8

    根据字符串长度进行匹配

  9. 9

    根据字符串的特定排列对字符串数组进行排序

  10. 10

    根据字符串内容中的@number对字符串数组进行排序

  11. 11

    当基数长度不同时,基数排序会错误地对字符串数组进行排序

  12. 12

    R基函数根据长度对字符串向量进行排序

  13. 13

    R基函数可根据长度对字符串向量进行排序

  14. 14

    Java如何根据排序值对字符串数组进行排序?

  15. 15

    如何对数组进行排序以便在顶部管理最大字符串长度?

  16. 16

    如何使用Arrays.sort()按长度对字符串数组进行排序

  17. 17

    使用jq按长度对数组中的字符串进行排序

  18. 18

    使用IComparable <string>按长度对字符串数组进行排序

  19. 19

    如何对数组进行排序以便在顶部管理最大字符串长度?

  20. 20

    ruby / rails根据字符串数组对记录数组进行排序

  21. 21

    使用字符串长度对ArrayList <String>进行排序

  22. 22

    iOS-NSFetchRequest:对字符串长度进行排序

  23. 23

    Java如何根据顺序值对字符串数组进行排序?

  24. 24

    如何根据非标准字母对字符串数组进行排序?

  25. 25

    根据用户输入对2D字符串数组进行排序?

  26. 26

    根据react中字符串数组中指定的顺序对组件进行排序

  27. 27

    根据字符串中存在的数字对String []数组进行排序

  28. 28

    根据数字和字符串中出现的特定文本对数组进行排序

  29. 29

    根据3条标准对Java字符串数组进行排序

热门标签

归档