Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

Основные структуры алгоритмов: сравнительный анализ и примеры их использования (Основные понятия и свойства алгоритма)

Содержание:

Введение

В данной курсовой работе мы рассмотрим виды алгоритмов и исполнителей, а так же проведем сравнительный анализ и приведем примеры применения алгоритмов.

Задачи и цели:

1. Получить знания, что такое алгоритм, основные понятия.

2. Узнать структуры алгоритмов и алгоритмические конструкции.

3. Провести сравнительный анализ.

4. Привести примеры использования алгоритмов.

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

Глава 1. Основные понятия и свойства алгоритма

Алгоритм – одно из основных понятий программирования и математики.

Современное формальное определение вычислительного алгоритма было дано в 30—50-е годы XX века в работах Тьюринга, Поста, Чёрча (тезис Чёрча — Тьюринга), Н. Винера, А. А. Маркова.

Около 1250 года английский астроном и математик Иоанн Сакробоско написал труд по арифметике Algorismus vulgaris, на столетия ставший основным учебником по вычислениям в десятичной позиционной системе счисления во многих европейских университетах.

Алгоритм – запись последовательности команд на формальном языке для исполнителя. Команды должны соответствовать системе команд исполнителя, для которого пишется алгоритм.

Слово «алгоритм» происходит от имени математика Аль Хорезми, который сформулировал правила выполнения арифметических действий. Первоначально под алгоритмом понимали только правила выполнения четырех арифметических действий над числами. В дальнейшем это понятие стали использовать вообще для обозначения последовательности действий, приводящих к решению любой поставленной задачи. Говоря об алгоритме вычислительного процесса, необходимо понимать, что объектами, к которым применялся алгоритм, являются данные. Алгоритм решения вычислительной задачи представляет собой совокупность правил преобразования исходных данных в результатные

Основными свойствами алгоритма являются:

1. детерминированность (определенность). Предполагает получение однозначного результата вычислительного процecca при заданных исходных данных. Благодаря этому свойству процесс выполнения алгоритма носит механический характер;

2. результативность. Указывает на наличие таких исходных данных, для которых реализуемый по заданному алгоритму вычислительный процесс должен через конечное число шагов остановиться и выдать искомый результат;

3. массовость. Это свойство предполагает, что алгоритм должен быть пригоден для решения всех задач данного типа;

4. дискретность. Означает расчлененность определяемого алгоритмом вычислительного процесса на отдельные этапы, возможность выполнения которых исполнителем (компьютером) не вызывает сомнений.

5. понятность: алгоритм составляется только из команд, входящих в СКИ исполнителя.

6. точность: каждая команда алгоритма управления определяет однозначное действие исполнителя.

7. конечность (или результативность): выполнение алгоритма должно приводить к результату за конечное число шагов.

Схема алгоритмаграфическое представление алгоритма, дополняемое элементами словесной записи.

Исполнитель – что-то или кто-то (человек, животное или устройство) способное выполнить заданный алгоритм. И все действия указанные в алгоритме выполняются формально, то есть по форме. Исполнитель не знает цель алгоритма, а просто исполняет указанные действия.

Каждый исполнитель характеризуется следующими параметрами:

1) Среда – условия, в которых находится и функционирует исполнитель (пример, исполнитель Черепашка функционирует в системе координат, исполнитель Робот перемещается по полю с клетками и т.д.).

2) Система команд – исполнители могут выполнять команды только из некоторого строго заданного набора, в котором каждая команда представляет одно элементарное действие.

Блок схема – распространенный тип схем (графических моделей), описывающих алгоритмы или процессы, в которых отдельные шаги изображаются в виде блоков различной формы, соединенных между собой линиями, указывающими направление последовательности.

Основные структуры алгоритмов — это ограниченный набор стандартных способов соединения отдельных блоков или структур для выполнения типичных последовательностей действий.

Следование – это последовательное размещение блоков и групп блоков, такая структура называется также линейной.

Обход – частный случай разветвления, когда одна ветвь не содержит никаких действий. Множественный выбор является обобщением разветвления, когда в зависимости от значения переменной (i) выполняется одно из нескольких действий. При I = 1 выполняется действие S1, при I = 2 – действие S2 и т. Д.

Система команд исполнителя (СКИ) - это вся совокупность команд, которые исполнитель умеет выполнять.

Команда ввода - команда, по которой значения переменных задаются через устройства ввода (например, клавиатуру).

Операции - это специальные комбинации символов, задающие действия по преобразованию различных величин.

Трудоёмкость алгоритма - это зависимость количества массовых операций от объема обрабатываемых данных. Трудоемкость определяется отдельно для каждого вида операций. Трудоемкость может зависеть от входных данных.

Виды алгоритмов.

Линейными называются алгоритмы, в которых действия осу­ществляются последовательно друг за другом.

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

Примером может являться разветвляющийся алгоритм, изо­браженный в виде блок-схемы. Аргументами этого алгоритма являются две переменные А, В, а результатом — пере­менная X. Если условие А > В истинно, то выполняется операция X := А х В, в противном случае выполняется Х.= А + В. В резуль­тате печатается то значение переменной X, которое она получает при выполнении одной из серий команд.

Циклическим называется алгоритм, в котором некоторая последовательность операций (тело цикла) выполняется многократно. Однако «многократно» не означает «до бесконечности». Организа­ция циклов, никогда не приводящая к остановке в выполнении ал­горитма, является нарушением требования его результативности — получения результата за конечное число шагов.

В цикл в качестве базовых входят — блок проверки условия и тело цикла. Перед операцией цикла осуществляется начальное присвоение значений тем переменным, которые используются в теле цикла.

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

Виды алгоритмов как логико-математических средств отражают указанные компоненты человеческой деятельности и тенденции, а сами алгоритмы в зависимости от цели, начальных условий задачи, путей ее решения, определения действий исполнителя подразделяются следующим образом:

- Механические алгоритмы, или иначе детерминированные, жесткие (например, алгоритм работы машины, двигателя и т.п.);

- Гибкие алгоритмы, например стохастические, т.е. вероятностные и эвристические.

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

- Вероятностный (стохастический) алгоритм дает программу решения задачи несколькими путями или способами, приводящими к вероятному достижению результата.

- Эвристический алгоритм (от греческого слова “эврика”) - это такой алгоритм, в котором достижение конечного результата программы действий однозначно не предопределено, так же как не обозначена вся последовательность действий, не выявлены все действия исполнителя. К эвристическим алгоритмам относят, например, инструкции и предписания. В этих алгоритмах используются универсальные логические процедуры и способы принятия решений, основанные на аналогиях, ассоциациях и прошлом опыте решения схожих задач.

1. Следование (линейный алгоритм) – последовательное выполнение команд (сверху вниз).

Алг программа

Название алгоритма

нач

Начало алгоритма

Вещ SR

Цел A,B,C,N

Объявление переменных (цел –целых, вещ –вещественных)

A = 1

Расчетная часть (операции выполняются поочерёдно сверху вниз)

B = 2

C = 3

N = 3

SR = (A+B+C)/N

кон

Конец алгоритма

Алг программа

Название алгоритма

нач

Начало алгоритма

Цел A, B, C

Объявление переменных

A = 1

Линейная часть алгоритма

B = 2

Если A < B

Условие ветвления

То C = A

Команда (или команды), выполняемая, если условие ложно

Иначе C = B

Конец алгоритма

Кон

Конец алгоритма

2. Ветвление – команды выполняются в зависимости от истинности некоторого условия либо возможно выполнение одного из двух или более наборов команд в зависимости от истинного условия.

да

условие

нет

Блок 1

Блок 1

Блок команд

да

Условие

да

Условие

Блок команд

Блок команд

да

Условие

3. Цикл – повторение блока команд.

Цикл с предусловием (Цикл ПОКА)

Блок команд выполняется, пока условие остается истинным (выход из цикла – по ложности условия).

Условие

нет

да

Блок команд

Алг программа

Название алгоритма

Нач

Начало алгоритма

Цел A,B

Объявление переменных

A = 0

Линейная часть алгоритма

Ввод (B)

Нц пока B < > 0

Условие выполнение цикла

A = A+B

Ввод (B)

Команды, выполняемые, пока условие истинно

Кц

Конец блока команд, составляющих цикл

Вывод (A)

Команда, которая выполняется после завершения цикла (когда условие цикла станет ложным)

кон

Конец алгоритма

Условие для выполнения цикла проверяется до начала, поэтому возможно, что цикл не выполнится ни разу.

Цикл с постусловием (цикл ДО)

Блок команд выполняется до тех пор, пока условие не станет истинным (цикл выполняется, пока условие не выполнится)

Блок команд

нет

Условие

да

Условие проверяется после выполнения цикла, поэтому тело цикла, поэтому тело цикла выполняется хотя бы один раз.

Алг программа

Название алгоритма

Нач

Начало алгоритма

Цел A, B

Объявление переменных

A = 0

Линейная часть алгоритма

Нц

Начало блока команд, составляющих цикл

Ввод (B)

A = A+B

Команды, выполняемые, пока условие цикла ложно

Кц до B = 0

Конец блока команд, составляющих цикл

Вывод (А)

Команда, которая выполняется после завершения цикла(когда условие цикла станет истинным)

Кон

Конец алгоритма

Цикл с параметром (цикл со счётчиком, цикл ДЛЯ)

Блок команд выполняется количество раз, заданное начальным, конечным значениями переменной-счётчика и шагом её изменения.

I от Iн до Ik

с шагом i

Блок команд

Алг программа

Название алгоритма

Нач

Начало алгоритма

Цел A, i

Объявление переменных

A = 0

Линейная часть алгоритма

Нц для I от 1 до 10 шаг 2

Начало цикла, задание его параметров

A = A+ I

Команды, выполняемые в цикле

Кц

Конец цикла

Вывод(А)

Команда, которая выполняется после завершения цикла

Кон

Конец алгоритма

Первоначально переменной-счётчику присваивается первоначальное значение и выполняется тело цикла. После выполнения тела цикла значение счётчика увеличивается на заданную величину шага и выполняется проверка: не превысило ли значение счётчика заданное конечное значение. Если не превысило, то цикл выполняется заново. Иначе происходит выход из цикла.

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

Счёт (2,3)

Счёт (3,4)

Счёт (2,4)

Основная программа

Подпрограмма

Возврат (с)

С = а

C = b

A < b

Счёт (a,b)

Правила выполнения арифметических алгоритмов

Первое правило - при построении алгоритма прежде всего необходимо задать множество объектов, с которыми будет работать алгоритм. Формализованное (закодированное) представление этих объектов носит название данных. Алгоритм приступает к работе с некоторым набором данных, которые называются входными, и в результате своей работы выдает данные, которые называются выходными. Таким образом, алгоритм преобразует входные данные в выходные.

Это правило позволяет сразу отделить алгоритмы от “методов” и “способов”. Пока мы не имеем формализованных входных данных, мы не можем построить алгоритм.

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

В школьной “теории алгоритмов” эти два правила не рассматриваются. В то же время практическая работа с алгоритмами (программирование) начинается именно с реализации этих правил. В языках программирования распределение памяти осуществляется декларативными операторами (операторами описания переменных). В языке Бейсик не все переменные описываются, обычно описываются только массивы. Но все равно при запуске программы транслятор языка анализирует все идентификаторы в тексте программы и отводит память под соответствующие переменные.

Третье правило - дискретность. Алгоритм строится из отдельных шагов (действий, операций, команд). Множество шагов, из которых составлен алгоритм, конечно.

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

Пятое правило - сходимость (результативность). Алгоритм должен завершать работу после конечного числа шагов. При этом необходимо указать, что считать результатом работы алгоритма.

Итак, алгоритм - неопределяемое понятие теории алгоритмов. Алгоритм каждому определенному набору входных данных ставит в соответствие некоторый набор выходных данных, т. е. вычисляет (реализует) функцию. При рассмотрении конкретных вопросов в теории алгоритмов всегда имеется в виду какая-то конкретная модель алгоритма.

Любая работа на компьютере - это есть обработка информации. Работу компьютера можно схематически изобразить следующим образом:

“Информация” слева и “информация” справа - это разные информации. Компьютер воспринимает информацию извне и в качестве результата своей работы выдает новую информацию. Информация, с которой работает компьютер, носит название “данные”.

Компьютер преобразует информацию по определенным правилам. Эти правила (операции, команды) заранее занесены в память компьютера. В совокупности эти правила преобразования информации называются алгоритмом. Данные, которые поступают в компьютер, называются входными данными. Результат работы компьютера - выходные данные. Таким образом, алгоритм преобразует входные данные в выходные:

Теперь можно поставить вопрос: а может ли человек обрабатывать информацию? Конечно, может. В качестве примера можно привести обычный школьный урок: учитель задает вопрос (входные данные), ученик отвечает (выходные данные). Самый простой пример: учитель дает задание - умножить 6 на 3 и результат написать на доске. Здесь числа 6 и 3 - входные данные, операция умножения - алгоритм, результат умножения - выходные данные:

Вывод: решение математических задач - частный случай преобразования информации. Компьютер (по-английски означает вычислитель, на русском языке - ЭВМ, электронная вычислительная машина) был создан как раз для выполнения математических расчетов.

При решении любой математической задачи мы составляем алгоритм решения. Но прежде мы сами и выполняли этот алгоритм, то есть доводили решение до ответа. Теперь же мы будем только писать, что нужно сделать, но вычисления проводить не будем. Вычислять будет компьютер. Наш алгоритм будет представлять собой набор указаний (команд) компьютеру.

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

Трактовка работы алгоритма как преобразования входных данных в выходные естественным образом подводит нас к рассмотрению понятия “постановка задачи”. Для того чтобы составить алгоритм решения задачи, необходимо из условия выделить те величины, которые будут входными данными и четко сформулировать, какие именно величины требуется найти. Другими словами, условие задачи требуется сформулировать в виде “Дано ... Требуется” - это и есть постановка задачи.

Исполнители.

Машина Тьюринга (МТ) — абстрактный исполнитель (абстрактная вычислительная машина). Была предложена Аланом Тьюрингом в 1936 году для формализации понятия алгоритма.

Машина Тьюринга является расширением конечного автомата и, согласно тезису Чёрча — Тьюринга, способна имитировать всех исполнителей (с помощью задания правил перехода), каким-либо образом реализующих процесс пошагового вычисления, в котором каждый шаг вычисления достаточно элементарен.

Машина Поста - абстрактная вычислительная машина, предложенная Эмилем Постом в 1936 году, создана независимо от машины Тьюринга, но сообщение о машине Поста опубликовано на несколько месяцев позднее. Отличается от машины Тьюринга большей простотой, притом обе машины алгоритмически «эквивалентны» и обе разработаны для формализации понятия алгоритма и решения задач об алгоритмической разрешимости, то есть, демонстрации алгоритмического решения задач в форме последовательности команд для машины Поста.

Исполнитель «Черепашка» - исполняя команды, двигается по координатному полю.

Исполнитель «Робот» - исполняя команды, двигается по полю с клетками.

Глава 2. Сравнительный анализ алгоритмов

2.1. Сравнительные оценки алгоритмов

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

Будем рассматривать в дальнейшем, придерживаясь определений Поста, применимые к общей проблеме, правильные и финитные алгоритмы, т.е. алгоритмы, дающие общей проблемы. В качестве формальной системы будем рассматривать абстрактную машину, включающую процессор с фон Неймановской архитектурой, поддерживающий адресную память и набор «элементарных» операций соотнесенных с языком высокого уровня.

В целях дальнейшего комфортного анализа примем следующие допущения:

- каждая команда выполняется не более чем за фиксированное время;

- исходные данные алгоритма представляются машинными словами по B (бета/ неизвестное число) битов каждое.

Проблема задается N словами памяти, таким образом, на входе алгоритма – = N* бит информации. Отметим, что в ряде случаев, особенно при рассмотрении матричных задач N является мерой длины входа алгоритма, отражающей линейную размерность.

Программа, реализующая алгоритм для решения общей проблемы состоит из М машинных инструкций по битов – = М* бит информации.

Кроме того, алгоритм может требовать следующих дополнительных ресурсов абстрактной машины:

- – память для хранения промежуточных результатов;

- – память для организации вычислительного процесса (память, необходимая для реализации рекурсивных вызовов и возвратов).

При решении конкретной проблемы, заданной N словами памяти алгоритм выполняет не более чем конечное количество «элементарных» операций абстрактной машины в силу условия рассмотрения только финитных алгоритмов.

Комплексный анализ алгоритма может быть выполнен на основе комплексной оценки ресурсов формальной системы, требуемых алгоритмом для решения конкретных проблем. Очевидно, что для различных областей применения веса ресурсов будут различны, что приводит к следующей комплексной оценке алгоритма:

, где – веса ресурсов.

2.2. Система обозначений в анализе алгоритмов

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

Пусть – множество конкретных проблем данной задачи, заданное в формальной системе. Пусть Dє – задание конкретной проблемы и |D| = N.

В общем случае существует собственное подмножество множества , включающее все конкретные проблемы, имеющие мощность N:

обозначим это подмножество через : = {D є ,: |D| = N};

обозначим мощность множества через --> = | |.

Тогда содержательно данный алгоритм, решая различные задачи размерности N, будет выполнять в каком-то случае наибольшее количество операций, а в каком-то случае наименьшее количество операций. Ведем следующие обозначения:

(N) – худший случай – наибольшее количество операций, совершаемых алгоритмом А для решения конкретных проблем размерностью N:

- худший случай на

(N) – лучший случай – наименьшее количество операций, совершаемых алгоритмом А для решения конкретных проблем размерностью N:

– лучший случай на

(N) – средний случай – среднее количество операций, совершаемых алгоритмом А для решения конкретных проблем размерностью N:

– средний случай на

2.3. Классификация алгоритмов по виду функции трудоёмкости

В зависимости от влияния исходных данных на функцию трудоемкости алгоритма может быть предложена следующая классификация, имеющая практическое значение для анализа алгоритмов:

- Количественно-зависимые по трудоемкости алгоритмы

Это алгоритмы, функция трудоемкости которых зависит только от размерности конкретного входа, и не зависит от конкретных значений:

(D) = (|D|) = (N)

Примерами алгоритмов с количественно-зависимой функцией трудоемкости могут служить алгоритмы для стандартных операций с массивами и матрицами – умножение матриц, умножение матрицы на вектор и т.д.

- Параметрически-зависимые по трудоемкости алгоритмы

Это алгоритмы, трудоемкость которых определяется не размерностью входа (как правило, для этой группы размерность входа обычно фиксирована), а конкретными значениями обрабатываемых слов памяти:

(D) = (,…,) = (,…,), m =< n

Примерами алгоритмов с параметрически-зависимой трудоемкостью являются алгоритмы вычисления стандартных функций с заданной точностью путем вычисления соответствующих степенных рядов. Очевидно, что такие алгоритмы, имея на входе два числовых значения – аргумент функции и точность выполняют существенно зависящее от значений количество операций.

а) Вычисление последовательным умножением (x, k) = (k).

б) Вычисление = (/n!), с точностью до = (x, )

- Количественно-параметрические по трудоемкости алгоритмы

Однако в большинстве практических случаев функция трудоемкости зависит как от количества данных на входе, так и от значений входных данных, в этом случае:

(D) = (||D||, ,…,) = (N, ,…,)

В качестве примера можно привести алгоритмы численных методов, в которых параметрически-зависимый внешний цикл по точности включает в себя количественно-зависимый фрагмент по размерности.

- Порядково-зависимые по трудоемкости алгоритмы

Среди разнообразия параметрически-зависимых алгоритмов выделим еще одну группу, для которой количество операций зависит от порядка распо-ложения исходных объектов.

Пусть множество D состоит из элементов (,…,), и ||D||=N,

Определим = {(,…,)}-множество всех упорядоченных N-ок из ,…,, отметим, что ||=n!.

Если (i) (j), где i, j є , то алгоритм будем называть порядково-зависимым по трудоемкости.

Примерами таких алгоритмов могут служить ряд алгоритмов сортировки, алгоритмы поиска минимума и максимума в массиве. Рассмотрим более подробно алгоритм поиска максимума в массиве S, содержащим n элементов:

(количество выполненных операций присваивания зависит от порядка следования элементов массива)

Глава 3. Примеры использования алгоритмов

1. Алгоритмы в реальной жизни:

Алгоритм поглощения таблетки:



 

1) начало;

2) беру таблетку;

3) кладу в рот;

4) делаю глоток воды;

5) глотаю таблетку;

6) конец.


 

Алгоритм кипячения воды:

1) Налить в чайник воду.

2) Зажечь спичку.

3) Открыть кран газовой горелки.

4) Поднести спичку к горелке.

5) Поставить чайник на плиту.

6) Ждать, пока вода закипит.

7) Выключить газ.

2. Алгоритмы в литературе:

У лукоморья дуб зеленый;
Златая цепь на дубе том:
И днем и ночью кот ученый
Все ходит по цепи кругом:
Идет направо – песнь заводит,
Налево – сказку говорит,
Там чудеса: там леший бродит,
Русалка на ветвях сидит…

А. С. Пушкин

3. Алгоритмы в информатике:

Линейные алгоритмы

«Сбор в школу».

1. Просыпаемся

2. Умываемся.

3. Чистим зубы.

4. Делаем зарядку.

5. Одеваемся.

6. Кушаем.

7. Обуваемся и идем в школу.

8. Конец алгоритма.

Циклические алгоритмы

Если ряд чисел от 1 до 100. Нам необходимо найти все простые числа, то есть те, которые делятся на единицу и себя. Назовем алгоритм «Простые числа»

Проверяем, меньше ли оно 100.

Берем число 8.

7. Проверяем, простое ли оно.

6. Проверяем, меньше ли оно 100.

5. Берем число 2.

4. Если условие выполняется, записываем его.

3. Если да, проверяем простое ли это число.

2. Проверяем, меньше ли оно 100.

1. Берем число 1.

1

Берем число 9.

Нет, пропускаем его.

Проверяем, простое ли число.

Таким образом, перебираем все числа, до 100. Как видите, шаги 1 – 4 будут повторяться некоторое число раз.

1

Разветвляющиеся алгоритмы

Переход дороги пешеходом:

.

1. Подходим к светофору

2. Смотрим на сигнал светофора.

3. Он должен быть зеленым (это условие).

4. Если условие выполняется, мы переходим дорогу.

4.1 Если нет – ждем, пока загорится зеленый.

4.2 Переходим дорогу.

5. Конец алгоритма

4. Алгоритмы в математике:

Квадратное уравнение:

Начало алгоритма

Если дискриминант <0, то действительных решений нет.

Если =0, то одно решение.

Если >0, то два разных корня.

Если дискриминант <0, то действительных решений нет

Если =0, то одно решение

Если >0, то два разных корня

Заключение

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

«Используемые в настоящее время объемы массивов данных достигают размеров, которые еще десятилетие назад казались почти невероятными. Чем большими становятся объемы перерабатываемых данных, тем актуальнее становится задача оптимизации используемых алгоритмов, в том числе и сортировки. В то же время по-прежнему важными остаются задачи, не требующие повышения скорости алгоритмов. Например, для образовательных целей часто более важной является их простота»,
цитата Дупленко А.Г. (Сравнительный анализ алгоритмов сортировки данных в массивах // Молодой учёный – 2013 - №8 – с. 50-53.).

Список использованных источников

  1. Богомолова О.Б. Информатика новый полный справочник для подготовки к ЕГЭ / Москва: АСТ: Астрель, 2016 (стр.125).
  2. Гейн А. Г., Шолохович В.Ф. Преподавание курса “Основы информатики и вычислительной техники” в средней школе. Руководство для учителя. Екатеринбург, 1992.
  3. Голицына О.Л, Попов И.И. Основы алгоритмизации и программирования: Учеб. пособие. - М.: ФОРУМ: ИНФРА-М. 2004. - 432 с. - (серия «Профессиональное образование»).
  4. Извозчиков В.А. Информатика в понятиях и терминах.
  5. Информатика. Базовый курс. 7-9 классы. / Семакин И.Г(стр.342).
  6. Касаткин В.Н. Информация, алгоритмы, ЭВМ. М., Просвещение, 1991.
  7. Нестеренко А. В. ЭВМ и профессия программиста. М., Просвещение, 1990.
  8. Семакин И.Г., Шестаков А.П. Основы программирования: Учебник для среднего профессионального образования. - М.: Издательский центр «Академия». 2003. - 432 с.
  9. «Теория алгоритмов» Тихомирова А.Н.
  10. https://algoritmkgu.wordpress.com
  11. http://www.openclass.ru
  12. http://e-biblio.ru
  13. http://www.yaklass.ru/
  14. http://th-algoritmov.narod.ru