Сергей, а про динамическое программирование можете рассказать или может ссылку на обучающий материал скинуть, я Хирьянова по смотрел, но почему понял слабовато
Там ничего сложного нет. Суть в том, что задача разбивается на множество более мелких подзадач, которые объединяясь, дают решение исходной. Часто в динамическом программировании используется рекурсивный подход.
def merge(a): if len(a) == 1: return a else: return merge_sort(merge(a[:len(a)//2]), merge(a[len(a)//2:])) - я реализовала так, короче и для меня более читабельней
@@petrovsky1982 это называется отладкой программы (debug). Ставится точка останова, программа запускается в режиме debug и далее клавиша F8 (выполнить следующий шаг)
Ещё вопрос: можно объяснить как работает конструкция c + a[i:] + b[i:]? А конкретно почему на этапе сложения (конкатенации) получается -3, 5, 9, а не -3, 5, -3, 5, 9? Ведь в списке с уже находится -3, 5 и вроде как значения a или b не удаляются...
Сергей, очень большое спасибо! Классно, что используете режим отладки! Так намного понятнее, что за чудеса творятся в этой рекурсии🌀
Спасибо огромное за ваш труд!
Спасибо, Сергей!
Класс! Лучший канал!
спасибо за видео!
Спасибо!👌
друг, возвращайся на ютуб
Спасибо
а почему в после переобъявления переменной а2 на последующих итерациях, подсписки под тем же именем не удаляются?
Сергей, а про динамическое программирование можете рассказать или может ссылку на обучающий материал скинуть, я Хирьянова по смотрел, но почему понял слабовато
Там ничего сложного нет. Суть в том, что задача разбивается на множество более мелких подзадач, которые объединяясь, дают решение исходной. Часто в динамическом программировании используется рекурсивный подход.
а зачем использовать рекурсию? Разве это не сводит на нет все попытки ускорить алгоритм и уменьшить уровень его сложности?
def merge(a):
if len(a) == 1:
return a
else:
return merge_sort(merge(a[:len(a)//2]), merge(a[len(a)//2:])) - я реализовала так, короче и для меня более читабельней
5+
Здравствуйте. А что подразумевается под операцией? Это сравнение и обмен или что вообще?
смотря в каком контексте упоминается
Как настроить PyCharm так же как он настроен у Вас? С визуализатором и т.п.?
С каким визуализатором?
@@selfedu_rus я вижу у Вас даются пошаговые результаты работы программы, т.е. визуализация. 8, - 8 и т.д.
@@petrovsky1982 это называется отладкой программы (debug). Ставится точка останова, программа запускается в режиме debug и далее клавиша F8 (выполнить следующий шаг)
@@selfedu_rus спасибо
Ещё вопрос: можно объяснить как работает конструкция c + a[i:] + b[i:]? А конкретно почему на этапе сложения (конкатенации) получается -3, 5, 9, а не -3, 5, -3, 5, 9? Ведь в списке с уже находится -3, 5 и вроде как значения a или b не удаляются...
на память уже не помню, вы возьмите и в режиме отладки пошагово посмотрите как это работает
О я предполагаю, что тут в программе сливаются остатки от одного из массивов. По условию один из них уже пуст, значит срез ничего не прибавит))
@@ПавелТаранов-э1ч именно так
то, что непонятно, зазубрить.. и прогнать 100500 раз, потом станет понятно.