Pull to refresh

Comments 12

Визуализация 15 алгоритмов сортировки

www.youtube.com/watch?v=rQtereWDc24&feature=youtu.be

1. Selection Sort
2. Insertion Sort
3. Quick Sort (LR pointers)
4. Merge Sort
5. Heap Sort
6. Radix Sort ( LSD )
7. Radix Sort ( MSD )
8. std::sort (gcc)
9. std::stable_sort (gcc)
10. shell sort
11. bubble sort
12. Cocktail Shaker Sort
13. Gnome Sort
14. Bitonic sort
15. Bogo Sort
Назвать «сортировку выбором» (реже «простым выбором») «простой сортировкой»… Спасибо, посмеялся.

Ещё более смешно то, что для большинства сортировок написан код с прямым сравнением элементов непосредственно в этом коде, а для быстрой сортировки используется стандартная функция, реализующая сравнение через вызов функции, что в разы увеличивает время выполнения алгоритма. Разумеется, в столь заведомо неравных условиях быстрая сортировка проигрывает. Хотите, чтобы над Вашими результатами не смеялись — публикуйте результаты сравнения при использовании этой функции во ВСЕХ алгоритмах.
Насчет сортировки выбором соглашусь. Хотя у меня почему-то такое название ассоциируется с другим алгоритмом. Если статья Вам не интересна, это не значит, что она не интересна или бесполезна другим. Я писал для начинающих, для тех, кто в 1001 раз задает на форумах вопросы «сортировка не работает», «надо сделать сортировкау пузырьком, как?» и т.п.

Что касается быстрой сортировки. Задачи реализовывать самому этот алгоритм не стояло. В статье показано, что можно использовать стандартный (если он доступен) и он дает весьма хороший результат (обгоняя пузырек и шейкер в 1000 раз на массиве в 100тыс элементов).

Минусов наставили, желание писать дальше для новичков отбили. Пишите тогда сами, а я посмотрю, что у Вас получится и найду недостатки (это гораздо проще, чем заметить достоинства).
Если над моими статьями будут смеяться те, кто сам ничего написать не может, то пусть смеются. Я считаю, что поставленную задачу — дать новичкам практическое понимание сортировки и руководство к действию выполнил. Показал, почему пузырьковая сортировка работает медленно, на каких данных. Показал, как пользоваться стандартной qsort (с этим у новичков бывают проблемы).

Посмотреть на видео с сортировками, конечно, интересно, но для новичков практической пользы немного, имхо. Он пишет «помогите сделать/исправить сортировку, она не работает», а я ему ссылку на видео дам? В общем, осталось дождаться мнений начинающих программистов и, исходя из них, решать — стоит ли заниматься этим дальше или нет.
Большой плюс статьи — объяснение принципов работы и указание на недостатки реализаций для конкретных случаев. То есть позволяет задуматься над поставленной задачей, а не решать ее в лоб каким-нибудь привычным способом.
Забавно, что гифка с сортировкой, характеризует и статью в целом. Выполнена небрежно и с ошибка. Отмазки в стиле «для новичков» не канают, потому что подобных статей вагон и маленькая тележка, и большинство из них выполнены на гораздо более высоком уровне, и можно было бы понять если бы данная статья была написана ради инвайта, но это не первая ваша статья. И почему эта статья находится на гике а не на хабре?
Так приведите ссылку на более хорошую статью, все только спасибо скажут. И где ошибки в гифке?
вот http://habrahabr.ru/post/104697/ или вот http://habrahabr.ru/post/133996/ достаточно вбить в поиск.
Ошибка на гифке 32 не меняется с 31, а 31 не меняется с 30 в конце массив не отсортирован.
И да зачем в простой сортировке вы сравниваете значения так? if (m[j]/10<m[i]/10) при том, что ваш массив типа int он будет работать некорректно, это специально сделано чтобы новички искали ошибку? И судя по всему вы гифку делали с таким же сравнением.

Я специально сделал сравнение по ключу, который есть число/10 и отметил это в статье, чтобы у 30,31,32 был одинаковый ключ. А сделал для того, чтобы увидеть, как сортировки поступают со значениями, имеющими одинаковый ключ (т.е. устойчивые они или нет), И это тоже в статье написано. Выходит, Вы пробежались по ней не читая и сразу стали высказывать свое «фи». Печально.
В коде сортировки пузырьком нет деления на 10, так что выглядит это как баг.
Упс — это действительно мой косяк (копипаст подвел). Спасибо, исправил
Еще одна страница, где наглядно показана работа различных сортировок [url]https://www.toptal.com/developers/sorting-algorithms [/url]
Sign up to leave a comment.

Articles