我写了这个课程:
public class SortingObjectsWithAngleField implements Comparator<Point> { public int compare(Point p1,Point p2) { double delta = p1.getAngle() - p2.getAngle(); if(delta == 0.00001) return 0; return (delta > 0.00001) ? 1 : -1; } }
然后在我的main()方法中,我创建了一个列表,我添加了一些具有“X”和“angle”字段的对象.然后我用
Collections.sort(list,new SortingObjectsWithAngleField());
我想知道这种排序方式的复杂性是什么?
谢谢
解决方法
您可以阅读集合排序中的文档,但这里是为您而定:
The sorting algorithm is a modified
mergesort (in which the merge is
omitted if the highest element in the
low sublist is less than the lowest
element in the high sublist). This
algorithm offers guaranteed n log(n)
performance.
您的比较器不会改变这种复杂性,除非您对其中的循环执行任何操作,否则您不会.