Основные алгоритмы программирования 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.

Читайте также:  Пульт g20s программирование кнопки включения

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

Привет, уважаемый исследователь гитхаба в поиске интересных репозиториев. Это мои конспекты по алгоритмам и структурам данных, ничего от них не жди я просто люблю все забывать 🙂

  1. Динамическое программирование
  2. Суффиксы, префиксы и подстроки
  3. Структуры данных
    • Куча с максимумом в вершине
  4. Поиск элементов
    • Бинарный поиск
  5. [Векторная алгебра]
  6. Теория графов
  7. Сортировки

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, рекурсии и мемоизации.

clock tower

Регулярное выражение для проверки римских чисел (на Python)

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

Источник

Оцените статью