Какова самая неэффективная процедура сортировки? - PullRequest
2 голосов
/ 26 октября 2011

Для массива целых чисел, какой наименее эффективный способ сортировки массива.Функция должна прогрессировать на каждом этапе (например, без бесконечного цикла).Какова продолжительность выполнения этого алгоритма?

Ответы [ 9 ]

9 голосов
/ 26 октября 2011

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

5 голосов
/ 26 октября 2011

Bogosort имеет среднее время выполнения O(n*n!), ой.

3 голосов
/ 26 октября 2011

глупая сортировка , безусловно, худший алгоритм.Это не совсем бесконечный цикл, но этот подход имеет наихудший случай O(inf), а среднее значение равно O(n × n!).

2 голосов
/ 26 октября 2011

Вы можете сделать это в O(n!*n), сгенерировав все уникальные перестановки и затем проверив, отсортирован ли массив.

2 голосов
/ 26 октября 2011

Наименее эффективным алгоритмом, который я могу представить с конечной верхней границей времени выполнения, является сортировка перестановок.Идея состоит в том, чтобы генерировать каждую перестановку (комбинацию) входных данных и проверять, отсортирована ли она.

Верхняя граница O (n!), Нижняя граница O (n), когда массив уже отсортирован.

1 голос
/ 26 октября 2011
  1. Выполните итерацию по всем конечным последовательностям целых чисел, используя диагонализацию.
  2. Для каждой последовательности проверьте, отсортирована ли она.
  3. Если это так, проверьте, соответствуют ли ее элементы элементам в вашем массиве.

Это будет иметь верхнюю границу (первое предположение: O (n ^ (n * m)?).

0 голосов
/ 21 апреля 2016

"Worstsort" имеет сложность \Omega((n!^{(f(n))})^2), где n!^{(m)} = (...((n!)!)!...)! = факториал из n повторенных m раз.Бумагу Мигеля А. Лермы можно найти здесь .

0 голосов
/ 27 октября 2011

Bogosort - худший алгоритм сортировки, использующий перемешивание.Но, с другой стороны, вероятность сортировки массива за один шаг мала:)

0 голосов
/ 26 октября 2011

Странный вопрос, обычно мы идем к самому быстрому.

Найдите самое высокое и переместите его в список.Повторяйте предыдущий шаг, пока в исходном списке не останется только один элемент.Вам гарантировано O (N ^ 2).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...