![]() |
|
![]() ![]() ![]() |
|
lucyk |
|
|||
Новичок Профиль Группа: Участник Сообщений: 30 Регистрация: 5.5.2007 Где: Украина, Днепропе тровск Репутация: нет Всего: 1 |
Подскажите пожалуйста какой массив будет сортироваться быстрой сортировкой максимальное вермя? (В качестве опорного элемента выбирается средний элемент)
Это сообщение отредактировал(а) lucyk - 28.10.2008, 18:54 |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 20 Всего: 454 |
В котором на каждом шаге будет выполняться обмен. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
lucyk |
|
|||
Новичок Профиль Группа: Участник Сообщений: 30 Регистрация: 5.5.2007 Где: Украина, Днепропе тровск Репутация: нет Всего: 1 |
Покажите пожалуйста пример
|
|||
|
||||
ksili |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2069 Регистрация: 3.11.2005 Где: Красноярск Репутация: 2 Всего: 17 |
Насколько я помню, худший случай для быстрой сортировки - это уже отсортированный массив.
-------------------- Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с) |
|||
|
||||
Larrr |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 128 Регистрация: 29.1.2006 Где: Прага Репутация: нет Всего: 2 |
"Быстрота" быстрой сортировки заключается в разделении массива на примерно 2 равные подмасива. Если бы нам было гарантировано, что наш опорный элемент (взятый за константное время) всегда разобьет массив на 2 равные части, то алгоритм бы работал всегда O(n*logn) ( T(n) = T(n/2) + T(n/2) + n, если посчитать , что по идее должно получиться n*logn ).
Поэтому худший случай - когда опорным всегда выбирается такой элемент массива, который разобьет массив на 2 подмассива - 1 элемемент и остальные (n-1) и уже они идут на сортировку. По идее это должен быть массив, в котором всегда выбирается допустим минимальный элемент в качестве опорного. Добавлено через 47 секунд
Если всегда выбирать в качестве опорного не случайный по порядку, а первый элемент, то да. |
|||
|
||||
maxdiver |
|
||||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 381 Регистрация: 29.1.2008 Где: Саратов Репутация: 16 Всего: 18 |
Вроде когда-то давно мне попадалась именно такая олимпиадная задача.
Вот её условие:
Не знаю как решали эту задачу другие, а я написал перебор, выдающий все такие "плохие" перестановки, и долго вкуривал их. Через пару часов выявил одну из закономерностей, и закодил её:
|
||||||
|
|||||||
jessica |
|
|||
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 3.9.2011 Репутация: нет Всего: нет |
maxdiver,
Программа почему-то не работает: например для N=5 выводит 4(должно быть 10). Может есть другие идеи?? Это сообщение отредактировал(а) jessica - 3.9.2011, 09:43 |
|||
|
||||
volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 2 Всего: 85 |
||||
|
||||
esperanto |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 194 Регистрация: 31.5.2003 Репутация: 2 Всего: 4 |
У вероятностной реализации быстрой сортировки нет плохих массивов в принцепе, именно ее и используют
--------------------
B.Sc ->M.Sc.->Microsoft SDE-> (Ph.D. student + Intel SDE + psyсhology B.A) - > Skype SDET |
|||
|
||||
volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 2 Всего: 85 |
||||
|
||||
maxdiver |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 381 Регистрация: 29.1.2008 Где: Саратов Репутация: 16 Всего: 18 |
jessica, может быть, у Вас немного другой алгоритм быстрой сортировки? Там же всё очень зависит от деталей.
esperanto, ну если включить "зануда-mode" - то сама по себе применяемая псевдо-рандомность не поможет, поскольку, зная алгоритм псевдо-рандома и его начальные параметры, можно сделать anti-тест и против такой сортировки. Так что если автор программы не позаботился о хитром rand-seed, сгенерить тест против программы будет вполне реально. Кстати, вот легко читаемая статья по этому поводу: "A Killer Adversary for Quicksort". |
|||
|
||||
esperanto |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 194 Регистрация: 31.5.2003 Репутация: 2 Всего: 4 |
Я такого не говорил. И гарантию не дам.)) --------------------
B.Sc ->M.Sc.->Microsoft SDE-> (Ph.D. student + Intel SDE + psyсhology B.A) - > Skype SDET |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Алгоритмы" | |
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Алгоритмы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |