Задать вопрос
@enceladus181
любитель программирования

What is the running time of insertion sort?

Всем доброго дня!
Имеем массив размером N, хронящий 3 вида значений (например: 0, 1, 2). Значения распределены случайным образом.
Вопрос: Каким будет время выполнения сортировки (insertion sort), линейное, квадратичное или что-то между?
  • Вопрос задан
  • 46 просмотров
Подписаться 1 Простой 2 комментария
Решения вопроса 1
wataru
@wataru Куратор тега Алгоритмы
Разработчик на С++, экс-олимпиадник.
Квадратичное. При вставке каждого элемента в среднем отсортированная часть будет на треть состоять из 0, на треть и 1 и на треть и 2. Если текущий элемент 2, то вставка за O(1), если текущий элемент 1, то вы потратите i/3 операций. Если элемент 0, то 2/3i. В среднем i/3 операций на один элемент. Если просуммировать это от 1 до n, то получится n(n-1)/6. Значит общее количество операций O(n^2).
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы