Алгоритмы и структуры данных

Любая программа составлена в соответствии с некоторым алгоритмом. Алгоритм [algorithm] – это конечный набор предписаний, для которого указано, как и в какой последовательности эти предписания необходимо применять к исходным данным задачи, чтобы получить её решение. Алгоритм – это общий метод решения задачи, конкретное выражение которого будет оформлено в виде программы. Алгоритм даёт возможность чисто механически решать любую задачу из некоторого класса однотипных задач. К алгоритмам предъявляется целый ряд условий, например, алгоритм должен быть корректным, алгоритм должен решать задачу за определённое время и расходовать определённый размер памяти и т.д.

С алгоритмами любой человек имеет дело с детства. Алгоритмы изучаются в начальной школе.

Пример

Здесь представлены различные алгоритмы для сложения чисел.

1) сложение в десятичной системе

+ 345

------

2) сложение в двоичной системе

+ 01

-----

3) сложение дробей

5/3 + 7/2 = 31/6

g

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

Пример

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

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

g

Алгоритм может быть описан различными способами: формульно, графически, посредством некоторого языка программирования. Язык программирования [algorithmic language] – это система обозначений, предназначенная для точного описания алгоритмов для ЭВМ.

Пример

Рассмотрим задачу вычисления квадратного корня из некоторого положительного вещественного числа:

.

Такая задача решается с помощью алгоритма Герона. В формульной записи этот алгоритм будет иметь вид:

.

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

В графическом представлении алгоритм будет иметь более наглядную форму.

 

 
 

На алгоритмическом языке BASIC алгоритм может быть реализован следующим образом:

while(1)

y=y0

y=(y0+x/y0)/2

y0=y

wend

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

g


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: