Информация об изменениях

Сообщение Re[19]: Опорная точка от 11.10.2017 18:03

Изменено 11.10.2017 18:03 Jack128

Re[19]: Опорная точка
Здравствуйте, MTD, Вы писали:


MTD>>>Выбор опорной точки не поможет.


Q>>Как это не поможет?


MTD>Да вот так. На отсортированных данных как опорные точки не ставь скорость алгоритма деградирует до квадратичной.


Почему это ?? Тривиальный выбор опорной точки (arr[l + (r — l) / 2]) на отсортированной последовательности делит массисы всегда пополам, никакого квадрата не будет. Худший случай — это массив типа: 1,2,...,X-1,X,X-1,...,2,1.
MS в этом месте споткнулась (правда в .NET'е) https://github.com/dotnet/corefx/issues/24110
Re[19]: Опорная точка
Здравствуйте, MTD, Вы писали:


MTD>>>Выбор опорной точки не поможет.


Q>>Как это не поможет?


MTD>Да вот так. На отсортированных данных как опорные точки не ставь скорость алгоритма деградирует до квадратичной.


Почему это ?? Тривиальный выбор опорной точки (arr[l + (r — l) / 2]) на отсортированной последовательности делит массивы всегда пополам, никакого квадрата не будет. Худший случай — это массив типа: 1,2,...,X-1,X,X-1,...,2,1.
MS в этом месте споткнулась (правда в .NET'е) https://github.com/dotnet/corefx/issues/24110