Разработка программы, обладающей функциональностью анализирующей системы

Страницы работы

Фрагмент текста работы

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

Procedure Sort (var a : Seq);

 Var i, j, k, t : integer;

 begin   for i:=2 to N do            { перебір вхідного масиву }

             {*** вх.множина - [i..N], вих.множина - [1..i] }

   begin  t:=a[i];         { запам'ятовується значення нового эл-та }

       j:=i-1;  {пошук місця для эл. у вих. множинаі зі зрушенням}

{кінець циклу при досягненні початку або, якщо знайдено эл.менший

нового} while (j>=1) and (a[j]>t) do

    begin a[j+1]:=a[j];  { всі эл-ты, більші нового зрушуються }

          j:=j-1;  { цикл від кінця до початку вихідної множинаі }

    end; a[j+1]:=t;         { новий эл-т ставиться на своє місце }

   end;  end;

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

4.Выбор метода решения .

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

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

Для реализации проекта выбран следующий метод: реализованные на языке низкого уровня (Assembler) алгоритмы сортировки находятся в отдельных модулях и подключаются в основной программе. При этом замеряется время начала выполнения сортировки каждым методом и окончание его. Разность между этими двумя значениями и есть оценка скорости выполнения алгоритма. После проводится визуальное сравнение полученных результатов. Реализовано 3 вида сортировок: на случайном массиве данных, на прямо упорядоченном и на обратно упорядоченном.

5.Создание пользовательского интерфейса

Для нормального функционирования программы не нужны какие либо

Похожие материалы

Информация о работе