русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Построение моделей алгоритмов в системе GRAPH


Дата добавления: 2013-12-23; просмотров: 886; Нарушение авторских прав


 

В качестве примера использования системы GRAPH для описания алгоритмов рассмотрим известный алгоритм сортировки «вставками».

Пусть нам задан массив натуральных чисел . Для простоты введем фиктивный наименьший элемент (для ЭВМ ).

Создадим словарь данных ПОП. В первую очередь в качестве конструктивного объекта для множества данных массив A (в языке C++ тип массива определяется описанием: typedef int MASSIV[200];). Переменные n, i, j, w описаны в таблице 1.

 

Таблица 1.

Словарь данных
Имя данного Тип Класс данного Нач. значение Комментарий
A MASSIV I {-32000,18,4,56,65,37,63,66} Массив, который необходимо отсортировать
n int I Размерность массива A
j int I Цикл
i int V Счетчик
w int V Промежуточный элемент

 

 

Алгоритм сортировки вставками представлен на рисунке 5.

 

 


Здесь

· образом обозначена вычислимая функция (объект) вывода на печать содержимого массива A (int k;printf("массив А: \n"); for (k=1;k<=n;k++) printf(" %d",A[k]); printf("\n"); getch(););

· образом обозначен объект «j++»;

· образом обозначен объект «i--»;

· образом обозначена пустая функция «// Конец».

Нулевому элементу массива (A[0]) присвоено значение -32000.

 

Работа алгоритма начинается с вызова корневой вершины (на рисунке 5 обведена «жирно»). В данном случае – печать исходного массива данных. Далее, последовательно, начиная с элемента A[j] (первоначально j=2) на участке массива A от j до 1 производится упорядочивание элементов в порядке возрастания их значений.

Для этого индексу «i» присваивается значение на 1 меньше j (вершина 1). В объекте 2 запоминается «старшее» (улучшаемое значение элемента) A[j]. При этом в цикле вершина 3 – вершина 4 производится перемещение элементов в направлении A[j], до тех пор, пока не выполнится логическая функция 2 (w<A[i]). В этом случае на «освободившееся» место вставляется элемент A[j] (объект 5). Очевидно, что на данный момент все элементы на участке от 1 до j оказываются упорядоченными.



В блоке 8 производится печать текущего состояния массива, в вершине 6 – увеличение индекса j на 1.

Алгоритм работает, пока не исчерпаются все числа массива A (предикат 3).

 

2. СЛОЖНОСТЬ АЛГОРИТМОВ

 



<== предыдущая лекция | следующая лекция ==>
Модель данных | Полиномиальность и эффективность


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.004 сек.