Java中的collection.sort()函數有多快?什麼算法被使用?我碰到這個功能in this answer是降序排列的列表:collection.sort()函數的效率如何?
public static void main(String arg[])
{
List<Double> testList=new ArrayList();
/*Adding The values to the List*/
testList.add(0.5);
testList.add(0.2);
testList.add(0.9);
testList.add(0.1);
testList.add(0.1);
testList.add(0.1);
testList.add(0.54);
testList.add(0.71);
testList.add(0.71);
testList.add(0.71);
testList.add(0.92);
testList.add(0.12);
testList.add(0.65);
testList.add(0.34);
testList.add(0.62);
/*Declare a new List for storing sorted Results*/
List<Double> finalList=new ArrayList();
while(!testList.isEmpty()) //perform operation until all elements are moved to new List
{
double rank=0;
int i=0;
for(double d: testList)
{
if(d>=rank)
{
rank=d;
}
}
finalList.add(rank);
testList.remove(testList.indexOf(rank));
}
for(double d : finalList) {
System.out.println(d);
}
}
我覺得這個運行在O(N(N-1))時間,這將是一個大名單非常低效。我不認爲這是Collections.sort()的創建方式,因爲考慮它的低效率。
+1爲好和concie解釋 – 2014-09-28 19:36:41