TGViewer
SMLTECH SMLTECH @smlttech · 1.52K subscribers
Post #956 796
SMLTECH Наши разработчики постоянно решают различные задачи, как рабочие, так и теоретические. Это помогает им развиваться и держать себя в тонусе. 🎓 Сегодня предлагаем вместе с ними решить теоретическую задачу. Для решения вам понадобятся знания алгоритмов и матриц.…
Так как же сортировать улиткой? 🐌

В понедельник мы дали вам задачу создать алгоритм для сортировки двухмерного массива по спирали. Надеемся, что вы справились.

Давайте теперь посмотрим на один из вариантов решения и оценим его:

def snail(array):
# Если массив не пустой (база рекурсии)
if array:
# Извлекаем первую строку и приводим её к списку.
# Эта строка будет первой в итоговой последовательности.
top_row = list(array[0])

# Обрабатываем оставшуюся часть матрицы:
# 1. array[1:] — все строки кроме первой.
# 2. zip(*array[1:]) — функция zip с распаковкой строк превращает колонки в строки,
# получая "транспонированный" вариант оставшейся матрицы, где каждая новая строка
# представляет собой столбец исходной матрицы.
rotated_array = zip(*array[1:])

# Преобразуем объект zip в список, чтобы иметь возможность применять индексирование и разворот.
rotated_array = list(rotated_array)

# Инвертируем порядок строк (reverse):
# Так мы меняем направление обхода так, что столбец, ранее располагавшийся справа,
# становится следующей строкой при обходе.
rotated_array = rotated_array[::-1]

# Выполняем рекурсивный вызов:
# Объединяем ранее полученную верхнюю строку (top_row) с результатом обхода оставшейся (повёрнутой) матрицы.
return top_row + snail(rotated_array)
else:
# База рекурсии: если массив пустой, возвращаем пустой список.
return []


А как решили вы? 💬
Telegram SMLTECH Наши разработчики постоянно решают различные задачи, как рабочие, так и теоретические. Это помогает им развиваться и держать себя в тонусе. 🎓 Сегодня предлагаем вместе с ними решить теоретическую задачу. Для решения вам понадобятся знания алгоритмов и матриц.…
  • 👻 3
  • ❤ 2
More from @smlttech
  1. Jun 30, 2025🌟 Понедельник — это не приговор. Особенно если включить правильный плейлист Мы собрали му…
  2. Jun 30, 2025Post #1007
  3. Jun 28, 2025🔥 Лучшее от SMLTECH: подборка материалов, к которым стоит вернуться Каждую неделю мы дели…
  4. Jun 24, 2025✅ Как Data Science меняет девелопмент и бизнес — два практических вебинара от «Самолета» и…
  5. Jun 21, 2025Data-инструменты в действии: от контроля доступа до своей LLM-платформы В первой части мы…
  6. Jun 19, 2025✅ Как навести порядок в строительной документации Стройка — это тысячи документов, десятки…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →