Тёмный

Сортировка слиянием в python. Merge sort in Python. Recursive sorting algorithms 

egoroff_channel
Подписаться 140 тыс.
Просмотров 37 тыс.
50% 1

Опубликовано:

 

9 сен 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 44   
@ITHobbies
@ITHobbies 3 года назад
Как всегда качество и подача на высоте. Спасибо!
@user-io7oh1eb2t
@user-io7oh1eb2t 2 года назад
В коде на видео ошибка. Вот работающий код: def merge(a,b): c=[] i=j=0 while i
@user-ij4rv9yi7s
@user-ij4rv9yi7s Год назад
можете обьяснить пж в чем именно заключается ошибка
@abramovdenis09
@abramovdenis09 11 месяцев назад
@@user-ij4rv9yi7s В случае когда входной массив имеет нечетную длину, возникает ситуация когда в функцию merge_two_list, приходят массивы разной длины к примеру a = [5], b = [7,9] в этом случает в цикле отработает условие a[i] < b[j] для [5], затем после цикла сработает условие if j < len(b), НО только для [7], из-за чего в результате потеряется 9. Для этого необходимо перебирать все элементы в массиве не прошедшем проверку внутри while - для этого вводятся еще два цикла while i < len(a) вместо if i < len(a) и while j < len(b) вместо if j < len(b).
@user-fq1ek2gj4c
@user-fq1ek2gj4c 9 месяцев назад
можете объяснить как этот код сработал у него? я написал тот же код с теми же данными и получил ошибку
@abramovdenis09
@abramovdenis09 9 месяцев назад
@@user-fq1ek2gj4c У меня код из видео не работает, его пришлось доработать
@user-fq1ek2gj4c
@user-fq1ek2gj4c 9 месяцев назад
​@@abramovdenis09 у меня вопрос как он сработал в видео? я запускал его с теми же данными и полностью его повторил и проверил точность повтора, но код не работает. машина ведь не может ошибаться - автор видео получается делал монтаж? других вариантов я не могу придумать
@rub.trading5639
@rub.trading5639 Год назад
Спасибо большое за это видео. Кратко и ясно. Поймет даже самый далекий
@masiania_do_mi_sol6
@masiania_do_mi_sol6 2 года назад
Просто лучший. За 10 минут научилась большему, чем за 4 года универа. Спасибо
@user-xl3sh8mg9p
@user-xl3sh8mg9p Год назад
Нефиг было спать на лекциях 😄😀
@user-fv8jl8zm8y
@user-fv8jl8zm8y 2 года назад
Большое спасибо! Занимаюсь на курсе ООП,на stepik. Алгоритмы сортировки вдруг понадобились - и тут снова ваша помощь🙂
@dimitrilarios2667
@dimitrilarios2667 3 года назад
Отличный преподаватель. Алгоритмы - в плейлист.
@arxxximed
@arxxximed 3 года назад
Хороший подробный разбор.
@user-fs9gp6oz8x
@user-fs9gp6oz8x 3 года назад
Все очень подробно объяснено!👍🏻Пойду пробовать на задачах😊
@doloidiktatorov
@doloidiktatorov 3 года назад
Отличное видео. Спасибо.
@user-dz1ki9dw2t
@user-dz1ki9dw2t 3 года назад
Есть ли в планах делать видео по Django?
@ZidanUZB
@ZidanUZB 3 года назад
сделал как на видео но на степике не проходит решение: """Traceback (most recent call last): File "jailed_code", line 53, in assert merge_sort([11, 15, 19, 20, 20, 6, 4, 16, 8]) == [4, 6, 8, 11, 15, 16, 19, 20, 20], "Функция merge_sort возвращает неправильный результат" AssertionError: Функция merge_sort возвращает неправильный результат"""
@Sumrock
@Sumrock 2 года назад
Скорее всего не актуально, но ты, видимо, забыл 'left' и 'right' обернуть в рекурсию: left = merge_sort( lst[middle : ] ) right = merge_sort( lst[ : middle] )
@antonkulish6601
@antonkulish6601 Год назад
отличный ролик, спасибо. Только не b 'йотый', a b 'житый'
@user-ee1lx1pe7n
@user-ee1lx1pe7n 3 года назад
Очень крутое видео!
@spartanec_channel
@spartanec_channel 2 года назад
Спасибо за видео! Но это самая непонятная тема из трех плейлистов: основы, ооп, алгоритмы и структуры данных
@jackmetropolitan7845
@jackmetropolitan7845 3 года назад
ТОП Контент!
@jamjam3337
@jamjam3337 Год назад
спасибо!
@Antinormanisto
@Antinormanisto 6 месяцев назад
Вот иногда думаю, как до этого можно было догадаться самому?
@Vladimir-re8xl
@Vladimir-re8xl 3 года назад
Django
@ShortRush0
@ShortRush0 2 года назад
вау, прочитал около 3 статей, ничего не понял. Ваше видео шедевр, вялiкi дзякуй)
@mapmejiad4425
@mapmejiad4425 3 года назад
4:00 А куда делать пятёрка?)
@user-ou8nk4nc4l
@user-ou8nk4nc4l 3 года назад
Спасибо!!!
@19gan91
@19gan91 2 года назад
Со слиянием списков все понятно, но как списки отсортировались в процессе разбиения рекурсией вообще не могу понять. Кто-нибудь может скинуть ссылку где это можно прочитать?
@ppaseeker
@ppaseeker Год назад
ты слияешь 2 элемента! они в этот момент и сортируются, а далее у тебя 2 списка каждый из 2 отсортированых и т.д. в итоге все соединились и отсортировались
@ShStepan
@ShStepan 2 года назад
Разве не while i < n or j < m?
@Razor102rus
@Razor102rus 3 года назад
а теперь напишите это на Си)
@user-uu1cl8tx4c
@user-uu1cl8tx4c 6 месяцев назад
для чего нужна переменная n? n = int(input()) ни где не участвует
@mhntgfmjhg
@mhntgfmjhg Год назад
если его можно отсортировать слиянием, то можно просто соединить срез l[0] и l[1:]
@Chernikru
@Chernikru 7 месяцев назад
наитупейшая задача
@ARLIAMANJHO
@ARLIAMANJHO Год назад
Не понял. В какой момент происходит сортировка списка? Если например в левой части списка идут числа 3, 1,...то как в списке они окажутся в правильной последовательности?
@sergeyevgenievich310
@sergeyevgenievich310 Год назад
в merge_two_list, когда в списках остаются по одному элементу, они сравниваются и упорядоченно сливаются в новый список С.
@sergeyevgenievich310
@sergeyevgenievich310 Год назад
Снова не могу понять, почему бы не решить merge_two_list() через popы А[0] и В[0], с добавлением в С?
@user-et7hf3cu1r
@user-et7hf3cu1r 3 года назад
А если брать минимум и список перезаписывать с исключением его
@Original9698
@Original9698 11 месяцев назад
Решил задачу, но лишь немного изменил входные данные в функцию, в pycharme всё норм получается, но на степике не принимает решение, не понимаю в чем проблема # функция merge_two_list должна объединить два списка def merge_two_list(a, b): c=a+b r=[] while len(c)!=0: r.append(min(c)) c.remove(min(c)) return r # функция merge_sort должна выполнить сортировку def merge_sort(s,N): if len(s)==1: return s else: a = merge_sort(s[:(N//2)],N//2) b = merge_sort(s[(N//2):],N-N//2) return merge_two_list(a, b) N = int(input()) s = list(map(int,input().split())) print(merge_sort(s,N))
@itzvortex3172
@itzvortex3172 Год назад
Для питонистов указатели лишь вспомогательный инструмент в некоторых алгоритмах, а вот для c++ программистов...
@say1dead179
@say1dead179 Год назад
У меня почему то выводит 1 1 3 4 5 ( массив 5 4 3 2 1). Почему?
Далее
Новый уровень твоей сосиски
00:33
Презентация iPhone 16 за 4 минуты
04:00
Learn Merge Sort in 13 minutes 🔪
13:45
Просмотров 292 тыс.
Merge Sort In Python Explained (With Example And Code)
13:35
Quicksort In Python Explained (With Example And Code)
14:13
5 Simple Steps for Solving Any Recursive Problem
21:03