Если кто-то может внести свой вклад в мою логику, я был бы очень признателен.
Какой метод работает быстрее для массива со всеми одинаковыми ключами, сортировки выбором или сортировкой вставки?
Я думаю, что это будет похоже на случай, когда массив уже отсортирован, так что сортировка вставками будет линейной, а сортировка выбором — квадратичной.
Какой метод работает быстрее для массива в обратном порядке, сортировки выбором или сортировкой вставками?
Я думаю, что они будут работать одинаково, так как значения в каждой позиции должны быть изменены. Наихудший сценарий для сортировки вставками — обратный порядок, так что это будет означать, что она квадратична, и тогда сортировка выбором уже будет квадратичной.
Предположим, что мы используем сортировку вставками для случайно упорядоченного массива, элементы которого имеют только одно из трех значений. Является ли время выполнения линейным, квадратичным или чем-то средним?
Поскольку он отсортирован случайным образом, я думаю, это будет означать, что сортировка вставками должна будет выполнять во много раз больше операций, чем количество значений. Если это так, то это нелинейно. Таким образом, оно, вероятно, будет квадратичным или, возможно, немного ниже квадратичного.
Какое максимальное количество раз во время выполнения Quick.sort() самый большой элемент можно обменять на массив длины N?
Максимальное число не может быть передано больше раз, чем есть свободных мест, так как оно всегда должно приближаться к своей правильной позиции. Таким образом, переходя от первого к последнему ценностному споту, он будет обмениваться N раз.
Сколько сравнений сделает quick.sort() при сортировке массива из N одинаковых элементов?
При рисовании быстрой сортировки вокруг сравниваемых объектов на каждой фазе можно нарисовать треугольник, то есть N в высоту и N в ширину, площадь этого будет равна количеству выполненных сравнений, которое будет (N ^ 2)/2