Войти
ФлеймФорумПрограммирование

Существует ли такая сортировка? (8 стр)

Страницы: 13 4 5 6 7 8
#105
20:18, 6 янв 2015

FordPerfect
0.8397803045, если быть более точным)

#106
20:35, 6 янв 2015

ну, понеслася
http://habrahabr.ru/post/247053/

#107
20:41, 6 янв 2015

FordPerfect
> http://www.codecogs.com/latex/eqneditor.php
в нём удобно формулу набирать и сразу смотреть результат, тегом cht её отображать. потом, если захочется поредактировать, то формула будет сразу в сообщении в текстовом виде. но вообще codecogs - очень удобная штука.

#108
21:00, 6 янв 2015

Suslik
Если б они ещё были совсем идентичны (bug-compatible) - была бы вообще песня.

#109
21:01, 6 янв 2015

R.I.P.

Неужели асимптотика ухудшается до O(n2n) для нашего Median of Medians (и до O(n3n) для всего алгоритма)? Тут все несколько сложнее.

Это точно то, что ты хотел написать?

#110
21:22, 6 янв 2015

FordPerfect
> Это точно то, что ты хотел написать?
нет, куда-то потерял логи, поправил, спасибо.

#111
22:31, 6 янв 2015

> а так же в Кормене,
так же -> также
>Описание алгоритм Median of Medians
алгоритм -> алгоритма
И в конце непонятный заголовок "Код".

#112
22:36, 6 янв 2015

kipar
за опечатки спасибо, поправил
заголовок "Код" обозначает раздел, где собраны все ссылки на код

#113
23:51, 6 янв 2015

Известные сортировки, которые сразу приходят на ум, не удовлетворяют всем трем пунктам, например:

Неоднозанчно парсится.
И по-умолчанию, думаю, парсится некорректно.

#114
23:54, 6 янв 2015

Мануель Блюм, Роберт В Флойд, Вон Пратт, Рональд Л Ривест и Роберт Е Тарьян.

Роберт В Флойд нормально, а вот остальным бы точки поставить, а?

#115
0:19, 7 янв 2015

FordPerfect
> Неоднозанчно парсится.
> Роберт В Флойд нормально, а вот остальным бы точки поставить, а?
fixed

#116
21:36, 8 янв 2015

Mrrl с хабра выложил код in place merge sort, адаптированной под последовательный доступ
http://habrahabr.ru/post/247053/#comment_8213001

#117
1:47, 10 янв 2015

ripatti 7 января 2015 в 00:09 # ↵ ↑
Боюсь, она медленнее сортировки слиянием для любого количества элементов. Даже тесты делать руки опускаются.

Вообще говоря, всё на удивление хорошо.
Ну или я накосячил с тестом:
http://www.everfall.com/paste/id.php?x4qujue6vag1
Результат:
http://www.everfall.com/paste/id.php?ir8s86woo7f9

Некоторые наблюдения:
1. При времени работы существенно больше гранулярности таймера - flat quick sort стабильно быстрее insertion sort.
2. При этом же условии - время заполнения исходных данных - намного больше собственно сортировки.

И это ещё повезло, что у std::list::push_back - время работы константное.
У std::forward_list push_back нет вообще.
Ибо нефиг.

С std::sort не сравнивал.

#118
3:04, 10 янв 2015

FordPerfect
Я подобные тесты тоже проводил
Там insertion sort чуть быстрее только в окрестности 3500
С обычным sort сравнивать мало смысла:
Для 1 000 000 обычный сорт укладывается в 1 сек, эта же реализация работает порядка 40 секунд

#119
23:35, 11 янв 2015

R.I.P.
Какой бы мы pivot не вернули, flat_quick_sort в любом случае работает не хуже квадратичного (если сам pivot ищется быстро).
Поэтому использовать квадратичную сортировку для n<3500 не обязательно.

    if (n<3500)
    {
        //insertion_sort( be, en );
        return ::next( be, n/2 );
    }

Если не ошибаюсь.
Тест:
http://www.everfall.com/paste/id.php?fvq4o8ip0442
Отчёт:
http://www.everfall.com/paste/id.php?g2wqrwmpsinh
Результат: в 10 раз медленнее std::sort.

А Mrrl крут, конечно.

Страницы: 13 4 5 6 7 8
ФлеймФорумПрограммирование

Тема в архиве.