Python Map | Обучение
240 subscribers
197 photos
4 videos
1 file
86 links
Образовательный канал для программистов на Python 🐍

Сотрудничество – @HackingIP
Download Telegram
Добро пожаловать на канал "Python Map | Обучение"!

Здесь вы найдёте множество полезных материалов по Python, IT юмор, статьи, книги - всё, что пожелаете!

Рубрики:
#практика: практичные и полезные статьи 👨‍💻;
#теория: теоретические материалы 💼;
- #ЕГЭ
#юмор: шутки и мемы про IT 🔥;
#книги: полезные книги по Python 📚;
#статьи: ссылки на полезные статьи 🔗;
#типы_данных: материал по различным типам данных 🗄;
#библиотеки: статьи про различные библиотеки и пакеты 📦;
#алгоритмы: описания различных алгоритмов и паттернов программирования 🔢;

Приятного чтения!
💯4
Сортировка пузырьком

Самый простой и известный способ сортировки элементов массива. Вместе с этим это самый неэффективный алгоритм, на выполнение которого уходит много времени.

Временная сложность = O(n²).
В наихудшем случае внутренний цикл работает не менее n раз. Поэтому операция займет не менее n² времени.

Пространственная сложность = O(1).
Дополнительная память не используется, потому что происходит обмен элементов в исходном массиве

#алгоритмы
Алгоритм Евклида

Алгоритм Евклида — это эффективный алгоритм для нахождения наибольшего общего делителя двух целых чисел путем последовательных вычитаний одного числа из другого. Метод состоит в том, чтобы последовательно вычитать меньшее число из большего до тех пор, пока они не станут равны друг другу. Этот метод основан на том факте, что НОД(a, b) = НОД(b, a-b) для любых натуральных чисел a и b.

Пример:
Найти НОД для a = 24 и b = 18
24 - 18 = 6
a = 6 и b = 18
18 - 6 = 12
a = 6 и b = 12
12 - 6 = 6
a = 6 и b = 6
Ответ: 6


Записанный в таком виде алгоритм неэффективен, так как многократно использует вычитания. Чтобы оптимизировать алгоритм необходимо заменить операцию вычитания на взятие остатка.

#алгоритмы
Быстрая сортировка

Быстрая сортировка (quicksort) — это один из наиболее эффективных и широко применяемых алгоритмов сортировки. Она основана на использовании стратегии "разделяй и властвуй".

Шаги алгоритма:
1. Выбирается опорный элемент из массива (обычно это средний элемент)
2. Оставшиеся элементы массива разделяются на две части: элементы меньше опорного и элементы больше опорного
3. Рекурсивно применяется алгоритм к каждой из подгрупп
4. Элементы объединяются таким образом, чтобы получить отсортированный массив


Временная сложность = O(n log n)
В наихудшем случае время работы может быть O(n²)

#алгоритмы | @PyMapChannel
👍1