#12. Быстрая сортировка слиянием (merge sort) | Алгоритмы на Python

แชร์
ฝัง
  • เผยแพร่เมื่อ 29 พ.ย. 2024

ความคิดเห็น • 27

  • @Лена-в1н6ы
    @Лена-в1н6ы 9 หลายเดือนก่อน +1

    Сергей, очень большое спасибо! Классно, что используете режим отладки! Так намного понятнее, что за чудеса творятся в этой рекурсии🌀

  • @Яська_Гаспадар_з-пад_Вільні
    @Яська_Гаспадар_з-пад_Вільні 3 ปีที่แล้ว +11

    Спасибо огромное за ваш труд!

  • @friend1cat
    @friend1cat 3 ปีที่แล้ว +8

    Спасибо, Сергей!

  • @timur8216
    @timur8216 3 ปีที่แล้ว +9

    Класс! Лучший канал!

  • @pilina_
    @pilina_ 2 ปีที่แล้ว +2

    спасибо за видео!

  • @АлександрСолодников-ф8с
    @АлександрСолодников-ф8с ปีที่แล้ว +1

    Спасибо!👌

  • @alik_haribo287
    @alik_haribo287 9 หลายเดือนก่อน +2

    друг, возвращайся на ютуб

  • @MrIgor989
    @MrIgor989 3 ปีที่แล้ว +2

    Спасибо

  • @НикитаХлобыстов-г2й
    @НикитаХлобыстов-г2й 5 หลายเดือนก่อน +1

    а почему в после переобъявления переменной а2 на последующих итерациях, подсписки под тем же именем не удаляются?

  • @СергейНауменко-ь6н
    @СергейНауменко-ь6н ปีที่แล้ว +2

    Сергей, а про динамическое программирование можете рассказать или может ссылку на обучающий материал скинуть, я Хирьянова по смотрел, но почему понял слабовато

    • @selfedu_rus
      @selfedu_rus  ปีที่แล้ว +1

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

  • @kiruhs1971
    @kiruhs1971 4 หลายเดือนก่อน +1

    а зачем использовать рекурсию? Разве это не сводит на нет все попытки ускорить алгоритм и уменьшить уровень его сложности?

  • @ИннаЛиксакова-о4н
    @ИннаЛиксакова-о4н ปีที่แล้ว +4

    def merge(a):
    if len(a) == 1:
    return a
    else:
    return merge_sort(merge(a[:len(a)//2]), merge(a[len(a)//2:])) - я реализовала так, короче и для меня более читабельней

  • @sevakvart1111
    @sevakvart1111 3 ปีที่แล้ว +4

    5+

  • @pnp-manfamilia8239
    @pnp-manfamilia8239 2 ปีที่แล้ว

    Здравствуйте. А что подразумевается под операцией? Это сравнение и обмен или что вообще?

    • @selfedu_rus
      @selfedu_rus  2 ปีที่แล้ว

      смотря в каком контексте упоминается

  • @petrovsky1982
    @petrovsky1982 3 ปีที่แล้ว

    Как настроить PyCharm так же как он настроен у Вас? С визуализатором и т.п.?

    • @selfedu_rus
      @selfedu_rus  3 ปีที่แล้ว

      С каким визуализатором?

    • @petrovsky1982
      @petrovsky1982 3 ปีที่แล้ว

      @@selfedu_rus я вижу у Вас даются пошаговые результаты работы программы, т.е. визуализация. 8, - 8 и т.д.

    • @selfedu_rus
      @selfedu_rus  3 ปีที่แล้ว +1

      @@petrovsky1982 это называется отладкой программы (debug). Ставится точка останова, программа запускается в режиме debug и далее клавиша F8 (выполнить следующий шаг)

    • @petrovsky1982
      @petrovsky1982 3 ปีที่แล้ว

      @@selfedu_rus спасибо

  • @petrovsky1982
    @petrovsky1982 3 ปีที่แล้ว

    Ещё вопрос: можно объяснить как работает конструкция c + a[i:] + b[i:]? А конкретно почему на этапе сложения (конкатенации) получается -3, 5, 9, а не -3, 5, -3, 5, 9? Ведь в списке с уже находится -3, 5 и вроде как значения a или b не удаляются...

    • @selfedu_rus
      @selfedu_rus  3 ปีที่แล้ว

      на память уже не помню, вы возьмите и в режиме отладки пошагово посмотрите как это работает

    • @ПавелТаранов-э1ч
      @ПавелТаранов-э1ч 2 ปีที่แล้ว +3

      О я предполагаю, что тут в программе сливаются остатки от одного из массивов. По условию один из них уже пуст, значит срез ничего не прибавит))

    • @inbox765
      @inbox765 ปีที่แล้ว

      @@ПавелТаранов-э1ч именно так

  • @scvorec77
    @scvorec77 2 หลายเดือนก่อน +1

    то, что непонятно, зазубрить.. и прогнать 100500 раз, потом станет понятно.