Какова временная сложность метода java.util.Collections.sort()?

Я написал следующий класс:

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(), я создал List, к которому добавляю некоторые объекты с полями "X" и "angle".

Затем я использую:

Collections.sort(list, new SortingObjectsWithAngleField());

Какова сложность такого метода сортировки?

Ответы

Ответ 1

Вы могли бы прочитать документы по типу Collections, но здесь это для вас:

Алгоритм сортировки является модифицированным mergesort (в котором слияние опущен, если самый высокий элемент в низкий подсписчик меньше минимального элемент в высоком подсписке). Эта алгоритм предлагает гарантированный n log (n) производительность.

Ваш компаратор не изменит эту сложность, если вы ничего не делаете с петлями над своей коллекцией, в которой вы этого не делаете.

Ответ 2

Вы должны найти его в API: n log (n).

Ответ 3

Взято из Collections.sort -

Алгоритм сортировки является модифицированным mergesort (в котором слияние опущен, если самый высокий элемент в низкий подсписчик меньше минимального элемент в высоком подсписке). Эта алгоритм предлагает гарантированный n * log (n) производительность