2015-06-10 2 views
4

Дано массив, в котором значения в четных индексах инкрементны, а значения в нечетных индексах находятся в декрементальном порядке. Например:Сложность сортировки

[1,99,16,65,45,23,97] 

Я думал о двух различных способов сортировки это:

  1. Начиная с я = 0, у = a.length-2 и сравнивающие значения а [я] с [j]. i + = 2, если a [i] меньше или j = 2, если a [j] меньше. Для этого нужен дополнительный массив. Время равно O (n), а пространство O (n).

  2. Реверсирование порядка элементов, где их индекс является нечетным, а затем пузырь сортировать весь массив. Пространство - это O (1) .. как насчет времени?

Какая эффективность? Какова наихудшая временная и пространственная сложность для каждого? Сорт пузыря может занять много времени, нет?

+1

Я думаю, что если вы попытаетесь улучшить свой 1-й алгоритм, вы можете повторно использовать один и тот же массив (следовательно, O (1)) и все равно получить O (n) время. – Codebender

+0

Я попытался использовать временную переменную для хранения ячейки «о замене», но она возникла проблематично, поэтому я предположил, что это невозможно. – Osh24

+0

Что вы подразумеваете под проблемой? Что случилось? Отправьте свой код, если это возможно. – Codebender

ответ

1

Мне еще предстоит увидеть хороший вариант использования для создания пузырей в реальном мире. Если вы перейдете к варианту 2, как только вы переверните ячейки в нечетных индексах, у вас будет массив, который может сортироваться или не сортироваться по своему усмотрению, и примените тип пузырьков O (n). Тривиальным улучшением было бы использовать сортировку quicksort или merge и получить сложность времени O (n log (n)).

+0

Во втором варианте массив не «почти отсортирован»? (= O (n)) – Osh24

+1

@ Ош24 не обязательно. Рассмотрим примерно следующее: [900, 1000, 901, 950, 902, 1]. Даже после того, как половина индексов перевернулась, она не слишком привлекательна для создания пузырьков. – Mureinik

+0

После листания нечетных индексов мы получаем [900 1 901 950 902 1000], и тогда для получения этого права требуется всего 2 вида, что довольно привлекательно, нет? .. Вопрос в том, что касается этого вопроса и способа массива построена ли, может быть, O (n) с сортировкой пузырьков? – Osh24

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