我有以下列表要排序:

  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

09-13 06:51