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/

相关文章:

ios - 字典是Xcode中的假定集合(数组)吗?

javascript - parseInt() 比 toString() 快吗?

javascript - 在 Javascript 中快速管理约 10k 行的表

java - 速度 : four ints or one int with many operations

java - Java中处理日期和时间的不一致

java - 并行运行多个版本的 servlet Web 应用程序

java - 客户端从服务器 : Authentication failed ebay 收到 SOAP 错误

java - Jmeter通过记录的 session 发出请求

arrays - 有什么办法可以将2个数组加到一个数组中吗?

c++ - 交换 C++ 数组的 2 个字符