Загрузка [MathJax]/jax/output/HTML-CSS/fonts/TeX/fontdata.js

Подразделы

Другие разделы

Дата и время

09/04/2025 22:41:04

Авторизация

Имя:
Пароль:
Зарегистрироваться
Восстановить пароль
 

printАлгоритмы. Основы анализа эффективности алгоритмов

printФормы записи алгоритма

Словесный — алгоритм описывается на естественном языке.

float:right|Печенье1. Твердый сыр натереть на мелкой терке.
2. Холодное сливочное масло так же натереть, каждый раз обваливая масло в муке.
3. Смешать натертый сыр со сливочным маслом и мукой, по желанию добавить щепотку соли.
4. Соединить все ингредиенты в ком, вымешивать тесто не нужно.
5. Поместить тесто в пакет или в пищевую пленку и оставить в холодильнике на 20 минут.
6. Разделить тесто на 4 части и каждую раскатать в круглый пласт толщиной 0,5 см, присыпая тесто мукой.
7. Вырезать печенье (здесь необходима иллюстрация!).
8. Выпекать сырное печенье в разогретой духовке при температуре 180-200 градусов в течение 12-15 минут, до золотистости.


Псевдокод — для записи используется комбинация из конструкций языка программирования и естественного языка; можно описывать действия над любыми объектами.

добавить стартовую вершину в очередь
while очередь не пуста do
   w=вершина из очереди
   for v in соседние c w вершины do
       if не посещалась v then
         добавить v в очередь

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

background-color:#fff;width:200px|Схема

Существует много вариантов: схемы ISO 5807:1985 (ГОСТ 19.701-90), ДРАКОН-схемы, диаграммы деятельности UML, диаграммы потоков данных (DFD), для программирования микроконтроллеров (SFC, FBD), для описания бизнес-процессов (IDEF0, BPMN) и т.д.


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

Пример диаграммы Нэсси-Шнейдермана показан на левом рисунке. Для обучения основам программированию такая форма записи более удобна (на правом рисунке тот же алгоритм в Scratch) и также применяется в системах визуального программирования для непрограммистов (Blockly, App Inventor, Hopscotch и др.)

background-color:#fff;width:150px|Диаграмма width:200px|Скратч


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

Ассемблер:

L1: ADD AX,BX
    DIV AX,2
    JNZ L1

Язык высокого уровня

m=arr[0]
for e in arr:
   if e > m:
      m = e
loading