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