2

Если кто-то может внести определенный вклад в мою логику, я бы очень признателен.Сценарии выбора сортировки, сортировки вставки и быстрого сортировки

Какой метод работает быстрее для массива со всеми идентичными ключами, сортировкой сортировки или вставкой сортировки?

Я думаю, что это будет похоже на то, когда массив уже отсортирован, так что сортировка вставки будет линейной, а сортировка сортировки квадратичной.

Какой метод работает быстрее для массива в обратном порядке, сортировке сортировки или сортировке сортировки?

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

Предположим, что мы используем сортировку в случайном порядке, когда элементы имеют только одно из трех значений. Является ли время работы линейным, квадратичным или чем-то промежуточным?

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

Максимальное количество раз при выполнении функции Quick.sort(), которую можно обменять самым большим предметом, для массива длины N?

Максимальное количество не может быть передано больше времени, чем есть свободные пространства, так как оно всегда должно приближаться к его правильному положению. Итак, перейдя от первого к последнему значению, он будет заменен N раз.

О том, сколько сравнений будет выполнено quick.sort() при сортировке массива из N элементов, которые равны?

При растягивая быструю сортировку, треугольник можно нарисовать вокруг сравниваемых объектов на каждом этапе, то есть N высокий и Н в ширину, площадь этого будет равно числу сравнивает выполняется, которое было бы (N^2)/2

ответ

2

Вот мои комментарии на ваши комментарии:

Какой метод работает быстрее, для массива со всеми ключами идентичных выбора вида или вставки рода?

Я думаю, что это будет похоже на то, когда массив уже отсортирован, так что сортировка вставки будет линейной, а сортировка сортировки квадратичной.

Да, это правильно. Сортировка вставки будет выполнять O (1) на элемент и посещать элементы O (n) для общей продолжительности выполнения O (n).Сортировка выбора всегда выполняется во времени Θ (n) независимо от структуры ввода, поэтому ее время выполнения будет квадратичным.

Какой метод работает быстрее массива в обратном порядке, выбор вида или вставки рода?

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

Вы правы, что оба алгоритма имеют квадратичное время выполнения. Алгоритмы должны иметь относительно сопоставимую производительность, поскольку они будут делать одинаковое общее количество сравнений.

Предположим, что мы используем для вставки сортировки по случайным образом упорядоченный массив, где элементы имеют только один из трех значений. Является ли время работы линейным, квадратичным или чем-то промежуточным?

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

Это должно занять квадратичное время (время Θ (п)). Возьмите только элементы в задней части массива. Около трети из этих элементов будут 1, и для того, чтобы вставить их в отсортированную последовательность, их нужно было бы переместить выше 2/3 пути вниз по массиву. Таким образом, выполненная работа была бы не менее (n/3) (2n/3) = 2n /9, которая является квадратичной.

Что такое максимальное количество раз во время выполнения Quick.sort(), что наибольший элемент может быть заменен, для массива длины N?

Максимальное количество не может быть передано больше времени, чем есть свободные пространства, так как оно всегда должно приближаться к его правильному положению. Итак, перейдя от первого к последнему значению, он будет заменен N раз.

Ошибка здесь. Когда массив имеет размер 1, наибольший элемент не может быть перемещен больше, поэтому максимальное число ходов будет N - 1.

О том, сколько будет сравнить quick.sort() делает, когда сортировка массива из N элементов, которые равны?

При растягивая быструю сортировку, треугольник можно нарисовать вокруг сравниваемых объектов на каждом этапе, то есть N высокий и Н в ширину, площадь этого будет равно числу сравнивает выполняется, которое было бы (N^2)/2

Это действительно зависит от реализации Quick.sort().Quicksort с тройным разделением будет выполнять только O (n), потому что все значения, равные оси, исключаются в рекурсивных вызовах. Если это не будет сделано, ваш анализ будет правильным.

Надеюсь, это поможет!

+0

«Какой метод работает быстрее для массива в обратном порядке, сортировки сортировки или сортировки сортировки?» Я думаю, что количество обменов в Sorting Sort будет намного выше по сравнению с Selection. Но количество сравнений будет одинаковым для обоих. Таким образом, в этом случае, хотя асимптотически оба равны, но выбор может работать быстрее. –

Смежные вопросы