Быстрая сортировка
Vložit
- čas přidán 25. 07. 2024
- Привет, сегодня разберем алгоритм быстрой сортировки и реализуем его на языке программирования си. Поехали!
ТАЙМ КОДЫ
00:00 - вступление
00:19 - алгоритм быстрой сортировки (теоретическая часть)
02:21 - алгоритм быстрой сортировки (разбор кода)
13:34 - заключение
мой инстаграм: / dima_luchyk
редко оставляю комментарии, но твой ролик и твои видео не могут заставить пройти мимо, успехов тебе и всех благ моральных и физических, спасибо за твой труд
Сегодня решил немного поразабираться в быстрых алгоритмах и искал инфу по quicksort'y, только у тебя нашел понятное видео.Спасибо!
Спасибо тебе, парень. Наконец все ясно и понятно объяснил где чего и откуда берется. Я даже у Хирьянова не нашел про быструю рекурентную сортировку.
Большое спасибо! очень доходчиво! Успехов тебе!
весьма признателен, отличный урок! успехов тебе =)
Спасибо, взаимно)
ты молодец! прекрасно преподносишь информацию
Очень классно и понятно все объяснил, это то что я искал
Шикарно, спасибо огромное!!
красавчик!) спасибо за видео)
Классно, очень доходчиво!
Уважвемый автор данного видео, я благодарен вам за ваш труд и желаю успехов в этом нелегком деле. Позвольте мне привести немного конструктивной критики, которая, я надеюсь, позволит вам улучшить качество ваших роликов.
1) данный алгоритм изложен некорректно и он не работает правильно с любым набором чисел. Если элемент middle является наибольшим либо наименьшим, то алгоритм перестает работать.
2) у вас есть блок кода
while (s_arr[left] < middle){...}
в тот момент, когда оба числа равны 15 вы говорите "Поскольку 15 не меньше чем 15, то берем это занчение", после чего переходите к коду внутри фигурных скобок. При этом, даже на видео видно, что вы поняли, что сказанное вами неправильно и программа так работать не будет.
3) Пишите на все тесты, они позволят вам избежать подобных ошибок. При этом для теста нужно генерировать массив случайных чисел (к примеру, размером тысяча элементов).
А исправить то как
Вот вот, тоже не получилась программа по данному алгоритму, ни один массив не отсортировал. Объяснил все понятно, но код неправильный
Спасибо очень понятно!
Спасибо. Пока твое объяснение лучшее
Большое спасибо!!
Молодец, очень доступно объяснил и качественно все снял. Продолжай)
спасибо большое!
Спасибо!
лучший!! спасибо большое!!!
Хорош брат Респект
От души, спасибо
спасибо!
лучший
С питониста лайк :))
лайк
мы разбиваем массив относительно опорного элемента? или главное чтобы в левой части массива были все элементы больше равны за опорный, но при этом перед опорным может стоять число больше за него? тут перед 15 стоит 19
мне хоть кто то объяснит зачем вам left, если он равен нулю всегда ?
Крут, все понятно объяснил. Теперь эта сортировка у меня в классе ArrayUtils, т.к. в ~46 раз быстрее встроенной в java Arrays.sort();
(P.s. я понимаю, что скорость работы алгоритма зависит от входных данных, потому сравнение не точно)
интересно, вроде бы над встроенными функциями работают так тщательно, что превзойти их в общем случае невозможно. Да и в качестве стандартной сортировки обычно быстрая и стоит
@@quadroninja2708 мб в стандартной другой алгоритм
@@generalpashon вряд ли, быструю можно назвать лучшей, в общем случае
код не рабочий. Внимательней пиши код
Его код работает. Думаю вы где-то накосячили, но его код ну такое себе немного, так как зачем-то он нашел для левой части большее, а для правой меньшее и поменял их местами... Можно было просто для левой найти меньшее, а для правой большее. Тут я думаю он немного не разобрался, а так неплохо
Логичнее было бы пройтись по массиву и те числа, которые меньше добавить в меньший массив, а большие числа соответственно в больший массив. Вместо того, чтобы сначала найти меньший и больший в первом и во втором массиве соответственно, так как количество операций просто возрос
согласен, автор клоун
@@TheSky5028 Не ну это слишком, просто хотел поделиться тем что можно было бы исправить
@@nth-prog8562 клоун 100% даже не защищай его
Вы используете доп память, что не очень хорошо.
Молодец. Но есть замечание. А если слева все элементы меньшие опорного , но и справа тоже остались меньшие опорного ? хотелось бы поменять эти, что справа с какими-то левыми, но мы не можем. И тогда что делать ? опорный меняем ? и соответственно смещается "координата" опорного. Верно ? у тебя кстати есть такая ситуация в твоем примере, но ты про неё промолчал :)
Лайк и подписка бро. Продолжай именно так. Кстати ты ходил на какие то курсы ?
Спасибо! на курсы не ходил. Все изучаю самостоятельно.
@@GOALACTION Привет, молодец! сам тока начал изучать си, потом думаю си++. правда не с нуля, за плечами ассемблер и немного паскаль. но после ассемблера немного диковенько языки высокого уровня.
Тут простой пример на си пропустил через дизассемблерный отладчик, ольку, был удивлен насколько приблеженно код и короткий, не то что на паскале )
Успехов во всем! )
Брат можешь мне помочь или дать подсказки там есть задачи по рекурсий
На массиве 1, 5, 6, 4, 9, 2 не работает
Пока не уверен, но по всей видимости проблема в том, что индексы left и right в один момент пересекают друг друга и right становится левее left. В таком случае нужно вызывать рекурсивные функции немного по другому, а именно qs(s_arr, first, left) и qs(s_arr, right, last).
Я конечно уважаю СИ, но многие просто запутаются в коде, ПАЙТОН будет более понятен.
Я с тобой согласен! Пайтон гораздо понятнее для большинства людей, но сейчас я изучаю СИ, поэтому и код показываю на этом языке.
а что тут не понятного? Очень доступно и адекватно написанный код.
Как по мне Си для обучения алгоритмов и структур данных хороший выбор так как языков с Си подобным синтаксисом гораздо больше чем с другим... Единственное что я бы сделал терминальный случай(крайний случай / ранней возврат) в начале чтоб не вставлять весь код в блок if
код не работает
бесит музыка на заднем фоне, вообще не понимаю зачем её ставят, ведь надо сконцентрироваться и подумать , а не просмотреть легкое видео о выходе новинок чего-то.но по крайней мере тут она тише голоса и это уже хорошо.
зачем лишний раздражитель если ко всему прочему у всех вкусы разные.ставьте классику незнаю тогда что бы было нейтрально.
согласен