- Saved searches
- Use saved searches to filter your results more quickly
- gardiys/Algoritms
- Name already in use
- Sign In Required
- Launching GitHub Desktop
- Launching GitHub Desktop
- Launching Xcode
- Launching Visual Studio Code
- Latest commit
- Git stats
- Files
- readme.md
- About
- Основные алгоритмы и их реализация на Python
- 2.1 Линейные алгоритмы. Операции с числами и строками
- Основные алгоритмы программирования python
- Жадный алгоритм с примерами на Python
- Рекурсия в Python: плюсы и минусы использования
- Рекурсивные функции в Python
- Функция в Python: руководство для начинающих
- Алгоритмы сортировки на Python
- Алгоритм А* и его реализация на Python
- Регулярные выражения в Python
- Мемоизация, рекурсия и цикл for в Python
- Регулярное выражение для проверки римских чисел (на Python)
Saved searches
Use saved searches to filter your results more quickly
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.
Realization of popular algoritms and structures using Python
gardiys/Algoritms
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Sign In Required
Please sign in to use Codespaces.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Git stats
Files
Failed to load latest commit information.
readme.md
Привет, уважаемый исследователь гитхаба в поиске интересных репозиториев. Это мои конспекты по алгоритмам и структурам данных, ничего от них не жди я просто люблю все забывать 🙂
- Динамическое программирование
- Суффиксы, префиксы и подстроки
- Структуры данных
- Куча с максимумом в вершине
- Поиск элементов
- Бинарный поиск
- [Векторная алгебра]
- Теория графов
- Сортировки
About
Realization of popular algoritms and structures using Python
Основные алгоритмы и их реализация на Python
Аннотация: При разборе задач в этой части будем обращать внимание на постановку задачи (что именно нужно сделать) и собственно алгоритм, который будет описываться как блок-схемой, так и на «псевдоязыке» программирования (подобие «школьного алгоритмического языка»). И только после этого можно приступать к написанию программы на Python с учётом всех тех его особенностей и возможностей, которые были описаны в предыдущей части.
2.1 Линейные алгоритмы. Операции с числами и строками
Линейный алгоритм — алгоритм, в котором вычисления выполняются строго последовательно. Типичная блок-схема линейного алгоритма показана на рис. 2.1.
Далее рассмотрим типичные задачи с линейной структурой алгоритма.
Задача 1. Дано два числа a и b . Сделать так, чтобы их значения поменялись местами.
Постановка задачи: Имеются две переменные с какими-то определёнными значениями. Пусть значение a равно x , а значение b равно y . Требуется, чтобы значение a стало равно y , а значение b стало равно x .
Метод решения (общий): Использовать дополнительную переменную c , в которую временно записать начальное значение переменной a , присвоить переменной a значение переменной b , а потом переменной b присвоить значение переменной c .
Блок-схема такого алгоритма показана на рис. 2.2.
Текст программы на «псевдоязыке»:
ввод a, b c=a a=b b=c вывод a, b
Метод решения с использованием особенностей Python: использовать два кортежа. В первом будут определены переменные a и b и их значения, а второй сформируем из этих же переменных, но в обратном порядке.
Текст программы на Python:
# Перестановка местами двух чисел с использованием кортежа
(a, b)=input(‘Введите исходные значения (a, b) через запятую: ‘)
print ‘Новое значение а: ‘, a, ‘\n’, ‘Новое значение b: ‘, b
Как описано в разделе 1.4.2, комбинация ‘\n’ означает директиву на перевод строки для команды print.
Задача 2. Известны оклад (зарплата) и ставка процента подоходного налога. Определить размер подоходного налога и сумму, получаемую на руки.
Постановка задачи: Исходными данными являются величина оклада (переменная oklad , выражаемая числом) и ставка подоходного налога (переменная procent, выражаемая числом). Размер налога (переменная nalog ) определяется как oklad*procent/100 , а сумма, получаемая на руки (переменная summa) — как oklad-nalog .
Блок-схема алгоритма показана на рис. 2.3.
Текст программы на «псевдоязыке»:
ввод oklad, procent nalog=oklad * procent /100 summa=oklad-nalog вывод summa, nalog
print «Сумма на руки: «, summa
Если все числа в этом примере использовать как целые, то результат может получиться неверным. Поэтому при вычислении налога используется преобразование числителя из целого числа в вещественное (функция float() ).
Задача 3. Используя данные таблицы определить общую стоимость обеда в столовой. Определить, во сколько раз возрастёт стоимость обеда, если цена котлеты увеличится вдвое. 1 Источник: В.А.Молодцов, Н.Б.Рыжикова. Информатика: тесты, задания, лучшие методики. Ростов-на-Дону: Феникс, 2009.
Постановка задачи (формализованная): Имеется четыре числа, которые требуется просуммировать (обозначим их переменными a, b, c и d соответственно). Сумму их значений обозначим S1 . Требуется найти также величину S2=S1+b и определить отношение S2/S1 (обозначим это отношение переменной res ). В результате нужно вывести значения переменных S1 и res .
Текст программы на «псевдоязыке»:
ввод a, b, c, d S1=a, b, c, d S2=S1+b res=S2/S1 вывод S1, res
В программе на Python разумно будет использовать кортеж:
t=(a, b, c, d)=input(‘Введите значения через запятую: ‘)
print ‘Начальная_стоимость : ‘, S1, ‘ \n ‘, ‘Увеличение, _раз : ‘, res
И снова для преобразования целого числа в вещественное использована функция float() . (Полезно сравнить результат, получаемый при использвании выражения res=float(S2)/S1 и выражения res=float(S2/S1) ).
Задача 4. Преобразовать дату в «компьютерном» представлении (системную дату) в «российский» формат, т. е. день/месяц/год (например, 17/05/2009).
Постановка задачи: Системная дата имеет вид 2009-06-15. Нужно преобразовать это значение в строку, строку разделить на компоненты (символразделитель — дефис), потом из этих компонентов сконструировать нужную строку.
Сразу перейдём к программе на Python. Функциями работы с датами и временем в Python «заведует» модуль datetime , а непосредственно для работы с датами используется объект date и его методы.
Воспользуемся знанием методов строк и списков.
Основные алгоритмы программирования python
Сортировка — это фундаментальная операция в программировании, суть которой заключается в расположении элементов в определенном порядке. В этой статье мы разберем, как отсортировать словарь по ключам в Python. Для облегчения понимания мы рассмотрим данную операцию пошагово.
Жадный алгоритм с примерами на Python
В информатике жадный алгоритм — это алгоритм, который находит решение проблемы за минимально возможное время. Он выбирает локально оптимальный путь, не обращая внимания на глобальную оптимальность решения.
Рекурсия в Python: плюсы и минусы использования
Множество задач по своей природе являются рекурсивными. Их было бы очень трудно решить каким-либо другим способом, поэтому рекурсия обязательно должна быть в вашем арсенале.
Рекурсивные функции в Python
В этом руководстве мы поговорим о различных аспектах рекурсивных функций и реализуем рекурсивную функцию на Python с нуля.
Функция в Python: руководство для начинающих
Функция в Python — очень важная конструкция. Научиться правильно писать и использовать функции должен каждый Python-разработчик.
Алгоритмы сортировки на Python
В этой статье мы рассмотрим основные алгоритмы сортировки и их реализацию на Python, а также сравним их по времени и другим параметрам.
Алгоритм А* и его реализация на Python
Алгоритм А* — один из самых эффективных алгоритмов поиска кратчайшего пути между двумя точками графа. Давайте рассмотрим его работу.
Регулярные выражения в Python
Регулярные выражения, иногда называемые re, regex или regexp, представляют собой последовательности символов, составляющие шаблоны, соответствия которым ищутся в строке или тексте. Для работы с regexp в Python есть встроенный модуль re.
Мемоизация, рекурсия и цикл for в Python
Пишем код на Python для поиска n-го члена последовательности Фибоначчи с использованием цикла for, рекурсии и мемоизации.
Регулярное выражение для проверки римских чисел (на Python)
Разбираем, как формируются римские числа, и пишем регулярное выражение для проверки, ввел ли пользователь валидное римское число.