java - 排序列表需要很多时间

标签 java arrays performance sorting

我有以下列表要排序:

  A 0.53
  B 0.56
  C 0.56
  D 0.98
  E 0.33

请注意,我的列表可能包含 1000 条此类记录。我正在对我的列表进行排序,并将排序后的列表放入一个数组中:

  String str="";
        for(String s: mylist){
            str+=s+",";
        }
        String[] sArr = str.split(",");
        String temp="";
        for(int i=0; i<sArr.length;i++) {
            for(int j= i+1; j<sArr.length;j++){
                if(sArr[i].split("\\s")[1].compareToIgnoreCase(sArr[j].split("\\s")[1])<0){
                    temp= sArr[j];
                    sArr[j]= sArr[i];
                    sArr[i]=temp;
                }
            }
        } 

       //sArr now contains the sorted list

问题是当我有 1000 条记录时,排序花费的时间太长。 我的问题: 有没有其他方法可以在更短的时间内高效地完成相同的任务!还是我的编码方式有问题。有人可以帮帮我吗?

最佳答案

有很多方法可以对元素列表进行排序。您正在使用插入排序,这是一种缓慢的排序方法。你可以只使用:

Arrays.sort(sArr);

这应该比您的插入排序更快。

如果你想了解更多排序算法: wikipedia

关于java - 排序列表需要很多时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29309926/

相关文章:

java - 如何从java中的文本文件中获取行数而忽略空行?

java - 如何使JTree选择模型只允许兄弟选择?

arrays - 如何在二维数组中查找和存储值组?

java - 在 Java 中,进行数组边界检查的最易读的方法是什么?

c# - 可观察集合中的事务支持

java - Spring 响应式(Reactive)应用程序上请求/响应主体的副本?

java - 使用 SAXParser 根据 XSD 验证 XML 结果错误

arrays - ocaml lcs 没有像数组这样的对象

ruby-on-rails - 如何使用 ruby​​-prof 和 JMeter 分析 Rails

performance - 如何在Elasticsearch Service中随着数据大小的增加而降低索引和检索性能?