我有以下列表要排序:
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