Для ЯПматематиков пост: визуализация работы 19 алгоритмов сортировки

[ Версия для печати ]
Добавить в Telegram Добавить в Twitter Добавить в Вконтакте Добавить в Одноклассники
Страницы: (3) 1 [2] 3   К последнему непрочитанному [ ОТВЕТИТЬ ] [ НОВАЯ ТЕМА ]
m21edveD
13.04.2020 - 17:53
3
Статус: Offline


Ярила

Регистрация: 10.07.13
Сообщений: 1006
Зато я пузырьковую сортировку на любом языке напешу... Если буду знать его синтаксис :)
А видос зачотный, чотко визализированы алгоритмы.

Это сообщение отредактировал m21edveD - 13.04.2020 - 17:54
 
[^]
gods02
13.04.2020 - 18:00
7
Статус: Online


Ярила

Регистрация: 28.08.18
Сообщений: 3268
Цитата (Уфимский @ 13.04.2020 - 16:22)
Цитата (denisg2 @ 13.04.2020 - 15:49)
Обычно доверяю сортировку SQL серверу. "order by" решает.

Ну-ну... Давай из жителей Москвы, например, сделай сортировку по ИНН. Просто интересно: насколько сервер зависнет... shum_lol.gif

А сервер так и работает.
Фактически, он создает временный индекс по полю "ИНН", сортирует его, и, затем, на основании этого индекса расставляет результаты.
Так что специфический подбор метода сортировки для конкретного массива вряд ли будет более эффективней, чем стандартный метод сервера.
Ну, и откровенно говоря, 20 млн. записей - не такая уж большая база cool.gif
думаю, на современном сервере результат будет в районе 1 секунды.

 
[^]
riv1329
13.04.2020 - 18:02
11
Статус: Offline


Ярила

Регистрация: 20.04.16
Сообщений: 2523
Цитата (Eymerich @ 13.04.2020 - 15:16)
Круто. Сколько плохих методов оказывается есть.

зы а, забыл. Я так венду писал (par9)


В защиту "пузырька".

Не все так просто. Скорость каждого алгоритма очень сильно зависит от объема и типа данных. У умных алгоритмов делается меньше шагов, чем у тупого пузырька в пересчете на единицу данных, но сам шаг длиннее.

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

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

Но дело не только в скорости. Бывает что ситуация накладывает ограничения на возможность использования дополнительной памяти. Для пузырька нужна лишь одна лишняя ячейка. Рекурсивные алгоритмы потребляют память на стек тем больше, чем больше выборка (но не пропорционально больше). Для некоторых алгоритмов вообще заранее невозможно подсчитать необходимое количество памяти, что согласитесь, "не айс": программа может "вылететь" из-за нехватки доступной памяти раньше чем закончит сортировку.

Это сообщение отредактировал riv1329 - 13.04.2020 - 18:06
 
[^]
waxq
13.04.2020 - 18:25
1
Статус: Offline


Приколист

Регистрация: 16.11.15
Сообщений: 339
Годно, 2 раза пересматривал.
 
[^]
YourBunnyWro
13.04.2020 - 19:32
0
Статус: Offline


Ярила

Регистрация: 15.10.16
Сообщений: 1035
std::sort
 
[^]
AlexS32
13.04.2020 - 19:39
5
Статус: Offline


Ярила

Регистрация: 6.05.14
Сообщений: 1521
Цитата (Revanche @ 13.04.2020 - 15:09)
Соглашусь с заголовком видоса- ооочень специфично.

Вот так будет понятней, например, пузырьковая сортировка массива:


pupch agree.gif

Это сообщение отредактировал AlexS32 - 13.04.2020 - 19:43
 
[^]
Нуипох
13.04.2020 - 20:38
2
Статус: Offline


Весельчак

Регистрация: 6.12.14
Сообщений: 199
Цитата

Для ЯПматематиков пост: визуализация работы 19 алгоритмов сортировки

А для остальных, таких как я hat.gif, пост: красная хрень из чёрных полосочек собирает чёрный треугольник. И так 19 раз. cheer.gif
Но зеленьнул,
Скрытый текст
причём до 50
, ибо смотрится прикольно! rulez.gif
 
[^]
artivenom
13.04.2020 - 21:17
2
Статус: Offline


Ярила

Регистрация: 10.12.13
Сообщений: 10477
Блин, да это же древние как говно мамонта вещи, зачем это здесь?
 
[^]
artivenom
13.04.2020 - 21:18
3
Статус: Offline


Ярила

Регистрация: 10.12.13
Сообщений: 10477
Цитата (IKA3AKI @ 13.04.2020 - 15:59)
Описание методов добавить бы и было бы очень интересно.

Программисты большую их часть их наизусть знают обычно, непрограммистам это не нужно вообще
 
[^]
vintyra
13.04.2020 - 21:27
0
Статус: Offline


Ярила

Регистрация: 13.08.12
Сообщений: 7599
Как будто волосню бреют.
 
[^]
maxilon
13.04.2020 - 21:29
0
Статус: Offline


Пессимист

Регистрация: 3.09.15
Сообщений: 20370
А если пару черточек спиздить?
 
[^]
Alien999
13.04.2020 - 21:40
0
Статус: Offline


Ярила

Регистрация: 13.12.13
Сообщений: 5456
Афигительно. Спасибо.

Размещено через приложение ЯПлакалъ
 
[^]
Revelender
13.04.2020 - 21:44
0
Статус: Offline


Ярила

Регистрация: 8.10.13
Сообщений: 5474
Я все ждал квадрат малевича увидеть

Размещено через приложение ЯПлакалъ
 
[^]
monsbl4
13.04.2020 - 21:44
0
Статус: Offline


Шутник

Регистрация: 24.05.18
Сообщений: 36
Нихуя не понятно, но очень интересно)

Размещено через приложение ЯПлакалъ
 
[^]
Zeugl1271
13.04.2020 - 21:45
0
Статус: Offline


Хохмач

Регистрация: 14.11.10
Сообщений: 795
std::sort(std::begin(),std::end(),[](const &){...}); и ебись оно конём!
 
[^]
trybros
13.04.2020 - 21:48
-1
Статус: Offline


Ярила

Регистрация: 22.10.15
Сообщений: 3853
GOTO
 
[^]
AlexS32
13.04.2020 - 21:51
3
Статус: Offline


Ярила

Регистрация: 6.05.14
Сообщений: 1521
Цитата (Zeugl1271 @ 13.04.2020 - 21:45)
std::sort(std::begin(),std::end(),[](const &){...}); и ебись оно конём!

А чей та лямбда с одним параметром-то? moderator.gif
 
[^]
metallsnab1
13.04.2020 - 22:04
0
Статус: Online


Шутник

Регистрация: 27.03.15
Сообщений: 33
Методы определения: роста ВВП страны, благосостояния народа, рейтинги всякие ну и т.д. ?

Размещено через приложение ЯПлакалъ
 
[^]
Zeugl1271
13.04.2020 - 22:06
-1
Статус: Offline


Хохмач

Регистрация: 14.11.10
Сообщений: 795
Цитата (AlexS32 @ 13.04.2020 - 21:51)
Цитата (Zeugl1271 @ 13.04.2020 - 21:45)
std::sort(std::begin(),std::end(),[](const &){...}); и ебись оно конём!

А чей та лямбда с одним параметром-то? moderator.gif

это псевдокод behead.gif
 
[^]
artivenom
13.04.2020 - 22:07
0
Статус: Offline


Ярила

Регистрация: 10.12.13
Сообщений: 10477
Цитата (AVIcrak @ 13.04.2020 - 17:54)
Цитата (ЯЕсть @ 13.04.2020 - 16:41)
Цитата
Ну-ну... Давай из жителей Москвы, например, сделай сортировку по ИНН. Просто интересно: насколько сервер зависнет...


Ну ок, а как сортировку организуешь ты, чтобы сервак моментально справлялся?

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

Метод из какой-то умной книжки про сортировку номеров из телефонного справочника. rulez.gif Кажется это был Кнут.

Цитата (gods02 @ 13.04.2020 - 19:00)
Цитата (Уфимский @ 13.04.2020 - 16:22)
Цитата (denisg2 @ 13.04.2020 - 15:49)
Обычно доверяю сортировку SQL серверу. "order by" решает.

Ну-ну... Давай из жителей Москвы, например, сделай сортировку по ИНН. Просто интересно: насколько сервер зависнет... shum_lol.gif

А сервер так и работает.
Фактически, он создает временный индекс по полю "ИНН", сортирует его, и, затем, на основании этого индекса расставляет результаты.
Так что специфический подбор метода сортировки для конкретного массива вряд ли будет более эффективней, чем стандартный метод сервера.
Ну, и откровенно говоря, 20 млн. записей - не такая уж большая база cool.gif
думаю, на современном сервере результат будет в районе 1 секунды.

Ну хз на счёт именно БД, всё же там реализовано дерево, а не хэш, в том числе и в индексе. Возможно там есть спец. оптимизация для чисел. Но по общему правилу сортировка дерева будет всегда сложнее и медленнее, чем вставить записи в 1 проход в массив по очереди. Смысл именно в том, что индекс элемента массива = значению ИНН. 1 обход побитого массива и всё отсортировано. Быстрее варианта не может существовать просто. даже с индексом.

Это сообщение отредактировал artivenom - 13.04.2020 - 22:13
 
[^]
artivenom
13.04.2020 - 22:07
0
Статус: Offline


Ярила

Регистрация: 10.12.13
Сообщений: 10477
Цитата (Kukuzapa @ 13.04.2020 - 18:49)
Цитата (ЯЕсть @ 13.04.2020 - 15:36)
Цитата
хотяб сводную табличку - количество времени, операций сравнения, операций записи


Если ты прогер - ты и так эту таблицу знаешь (ну видел по крайней мере), а если нет - то нах она тебе не нужна cheer.gif

Не согласен. Мне кажется, что во многих языках сортировка есть из коробки. Как следствие пользователи могут и не знать про сортировку что либо выходящее за рамки пузырька и перестановки.

Мне была бы интересна сравнительная таблица.

Пользователю и не нужно, а программистов иногда поёбывают этой хуйнёй на собеседованиях.
 
[^]
azzail
13.04.2020 - 22:09
1
Статус: Offline


Капитан крайнего хождения

Регистрация: 30.06.09
Сообщений: 110
Тот который "Пиу-пиу-пиу" - долго сортирует. Пиииииииу гораздо быстрее
 
[^]
Гар
13.04.2020 - 22:11
0
Статус: Offline


Хохмач

Регистрация: 5.09.16
Сообщений: 619
Сортируй- не сортируй, всё равно получишь... треугольник.
 
[^]
torroid
13.04.2020 - 22:13
1
Статус: Offline


Ярила

Регистрация: 2.03.14
Сообщений: 1083
Один хуй все пузырьком сортируют, на большее ума не хватает. gigi.gif
 
[^]
ksp
13.04.2020 - 22:15
-1
Статус: Offline


Весельчак

Регистрация: 16.03.12
Сообщений: 188
Чо это? Нихт ферштейн вообще!

Размещено через приложение ЯПлакалъ
 
[^]
Понравился пост? Еще больше интересного в Телеграм-канале ЯПлакалъ!
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии. Авторизуйтесь, пожалуйста, или зарегистрируйтесь, если не зарегистрированы.
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) Просмотры темы: 12598
0 Пользователей:
Страницы: (3) 1 [2] 3  [ ОТВЕТИТЬ ] [ НОВАЯ ТЕМА ]


 
 



Активные темы






Наверх