Исследование алгоритма сортировки методом прямого включения
Принцип работы алгоритма бинарного поиска в массиве. Способы исследования алгоритма "прямое включение". Формулы зависимости числа сравнений от элементов в массиве. Графики среднего числа сравнений и перемещений практических и теоретических измерений.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 07.01.2014 |
Размер файла | 646,1 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
РЕФЕРАТ
СОРТИРОВКА, ПРЯМОЕ ВКЛЮЧЕНИЕ, ЧИСЛО СРАВНЕНИЙ, СРЕДНЕЕ ЧИСЛО СРАВНЕНИЙ, ГРАФИК ЗАВИСИМОСТИ, МАКСИМАЛЬНОЕ ЧИСЛО СРАВНЕНИЙ, МИНИМАЛЬНОЕ ЧИСЛО СРАВНЕНИЙ,
В данной курсовой работе был рассмотрен метод сортировки прямым включением(вставкой). Все элементы условно разделяются на готовую последовательность a1 ... ai-1 и входную ai ... an. Hа каждом шаге, начиная с i=2 и увеличивая i на 1, берем i- элемент входной последовательности и вставляем его на нужное место в готовую.
Были проведены два эксперимента с пятью массивами разной длинны, в которых проводился поиск десяти разных ключей по десять раз в каждом массиве. Эксперименты позволили увидеть работу метода и рассчитать среднее, максимальное и минимальное количество сравнений при проведении поиска.
Основными моментами проведённого исследования были составление таблиц и графиков зависимости сравнений, что дало возможность сделать вывод о том, что результаты большого количества экспериментов проведенных практическим путем позволяют подтверждать результаты проведенные теоретическим путем.
СОДЕРЖАНИЕ
ВВЕДЕНИЕ
1. ЛИТЕРАТУРНЫЙ ОБЗОР ПО АЛГОРИТМУ СОРТИРОВКИ ПРЯМЫМ ВКЛЮЧЕНИЕМ
1.1 Краткие теоретические сведения об алгоритме прямое включение
1.2 Выбор материала для проведения теоретического исследования
2. ИССЛЕДОВАНИЕ АЛГОРИТМА СОРТИРОВКИ МЕТОДОМ ПРЯМОГО ВКЛЮЧЕНИЯ
2.1 Теоретическое исследование алгоритма прямое включение
2.2 Практическое исследование алгоритма прямое включение
ЗАКЛЮЧЕНИЕ
СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ
ПРИЛОЖЕНИЕ E - Код программы №1
ПРИЛОЖЕНИЕ F - Код программы №2
ВВЕДЕНИЕ
Целью курсовой работы является закрепление полученных знаний во втором семестре, где мною были изучены основные структуры данных и алгоритмы, которые работают с ними. Среди этих алгоритмов широко известен метод прямое включение, который и будет исследован в курсовой работе. Исследования будут проведены теоретическими и практическими методами, на основании которых будут составлены таблицы и графики зависимостей.
1. ЛИТЕРАТУРНЫЙ ОБЗОР ПО АЛГОРИТМУ ПРЯМОГО ВКЛЮЧЕНИЯ
1.1 Краткие теоретические сведения об алгоритме прямое включение
В одной из книг [1, 442-444] рассказывается о принципе работы алгоритма бинарного поиска в массиве. Идея данного метода состоит в том, что каждый раз, имея уже упорядоченный массив из K элементов, мы добавляем еще один элемент, включая его в массив таким образом, чтобы упорядоченность не нарушилась. Сортировка может производиться одновременно со вводом массива.
Для поиска места i-ro элемента каждый раз потребуется выполнить от 1 до i-1 операций сравнения, т.е. в среднем i/2 операций сравнения. Значение i изменяется от 2 до п, т.е. выполняется п-1 проход, в каждом из которых происходит в среднем от 1 до п/2 сравнений. Таким образом, суммарно в среднем для решения задачи требуется выполнить (n-l)(n/2 + 1)/2 = (n2 + п - 2)1 А операций сравнения. Откуда вычислительная сложность метода в среднем также равна Оср(п2), хотя время выполнения примерно в два раза меньше, чем у предыдущего метода. Интересно, что в данном случае вычислительная сложность зависит от исходного расположения элементов массива.
1.2 Выбор материала для проведения теоретического исследования
Произведя литературный обзор можно сделать следующий вывод, что довольно полная информация об алгоритме прямое включение содержится в литературном источнике [2, 66-69, 493-498,].
Будем использовать следующие формулы зависимости максимального и минимального числа сравнений от числа элементов в массиве, которые были там [2, 66-69, 493-498,] приведены:
формула зависимости максимального числа сравнений от числа элементов в массиве из N элементов sravnmax = ( n^2 + n ) * / 2 - 1 (1.1);
(n - 1) -формула зависимости минимального числа сравнений от числа элементов в массиве из N элементов.
2. ИССЛЕДОВАНИЕ АЛГОРИТМА ПРЯМОЕ ВКЛЮЧЕНИЕ
Исследовать алгоритм можно по-разному. Первый способ исследования - это теоретический. Рассматривается сам принцип, заложенный в алгоритм. При таком исследовании проверяется характер поведения данного алгоритма при разных условиях. Это необходимо, чтобы выявить те условия, при которых данный алгоритм является наиболее эффективным, а также такие условия, при которых его использование не целесообразно.
Второй способ исследования - это практический, когда составляется программа по заданному алгоритму, который необходимо исследовать. В самой программе, исходя из её принципа, ставятся счётчики числа сравнений. Многократно проводится поиск для одинакового числа элементов в массиве, и определяются свои значения числа сравнений. Потом ищется среднее значение числа сравнений для поиска определённого числа элементов в массиве. По полученным значениям строятся графики зависимости среднего числа сравнений от числа элементов массива.
Так как в задании на курсовой проект указываются массивы для исследования от 10 до 100 элементов, положим, что N - максимальное число элементов в массивах равно 10<=N<=100.
2.1 Теоретическое исследование алгоритма прямое включение
В литературе [2, 66-69, 493-498,] были предложены следующие зависимости числа сравнений от числа элементов в массиве :
формула зависимости максимального числа сравнений от числа элементов в массиве;
( n^2 + n ) * / 2 - 1 (1.1)
формула зависимости минимального числа сравнений от числа элементов в массиве;
n - 1 (1.2)
формула зависимости максимального числа перемещений от числа элементов в массиве;
( n^2 + 3 * n - 4 ) / 2 (1.3)
формула зависимости минимального числа перемещений от числа элементов в массиве.
2 * (n - 1) (1.4)
Построим по формулам (2.1) - (2.2) графики зависимостей максимального и минимального числа сравнений для бинарного поиска.
Чтобы построить графики зависимостей максимального и минимального числа сравнений для метода прямого включения, мы возьмем десять произвольных массивов с числом элементов от 10 до 100 и подставим их значения в формулы (1.2) и (1.3), результаты запишем в таблицу(1).
Таблица 1
Результаты, полученные при практическом исследовании
N |
10 |
20 |
30 |
40 |
50 |
60 |
70 |
80 |
90 |
100 |
|
sravnmin |
9 |
19 |
29 |
39 |
49 |
59 |
69 |
79 |
89 |
99 |
|
sravnmах |
54 |
209 |
464 |
819 |
1274 |
1829 |
2484 |
3239 |
4094 |
5049 |
|
peremmin |
18 |
38 |
58 |
78 |
98 |
118 |
138 |
158 |
178 |
198 |
|
peremmax |
63 |
228 |
493 |
858 |
1323 |
1888 |
2553 |
3318 |
4183 |
5148 |
Таблица 1 - зависимости максимального и минимального числа сравнений для алгоритма прямое включение. Где N - количество элементов в массиве, sravnmax - максимальное число сравнений , sravnmin - минимальное число сравнений соединяют линиями, а полученная в результате кривая - это график зависимости среднего числа сравнений от числа элементов массива.
Так на рисунке 2.1 была получена теоретическая плоскость, в которой могут находиться значения числа сравнений в зависимости от числа элементов в массиве, где кривая 1 - это график зависимости sravnmax, а кривая 2 - это график зависимости sravnmin.
Рис. 2.1 - Теоретическая плоскость нахождения числа сравнений в зависимости от кол-ва элементов
Рис. 2.2 - Теоретическая плоскость нахождения числа перемещений в зависимости от кол-ва элементов
Так на рисунке 2.2 была получена теоретическая плоскость, в которой могут находиться значения числа сравнений в зависимости от числа элементов в массиве, где кривая 1 - это график зависимости peremmax, а кривая 2 - это график зависимости peremmin.
Теперь, когда были получены теоретические плоскости, можно построить графики зависимостей среднего значения числа сравнений и перемещений от числа элементов в массиве (рис. 2.3, 2.4). Для этого используем формулы:
sravnср теор(n)=(sravnmax(n) + sravnmin(n))/2 (1.5)
peremср теор=(peremmax(n)+ peremmin(n))/2. (1.6)
Таблица 2
Средние значения числа сравнений из табл. 1
N |
10 |
20 |
30 |
40 |
50 |
60 |
70 |
80 |
90 |
100 |
|
sravnmin |
9 |
19 |
29 |
39 |
49 |
59 |
69 |
79 |
89 |
99 |
|
sravnmах |
54 |
209 |
464 |
819 |
1274 |
1829 |
2484 |
3239 |
4094 |
5049 |
|
sravnсртеор |
31,5 |
114 |
246,5 |
429 |
661,5 |
944 |
1276,5 |
1659 |
2091,5 |
2574 |
Таблица 3
Средние значения числа перемещений из табл. 1
N |
10 |
20 |
30 |
40 |
50 |
60 |
70 |
80 |
90 |
100 |
|
peremmin |
18 |
38 |
58 |
78 |
98 |
118 |
138 |
158 |
178 |
198 |
|
peremmax |
63 |
228 |
493 |
858 |
1323 |
1888 |
2553 |
3318 |
4183 |
5148 |
|
peremсртеор |
40,5 |
133 |
275,5 |
468 |
710,5 |
1003 |
1345,5 |
1738 |
2180,5 |
2673 |
Необходимо проверить следующее. Располагается ли график зависимостей sravnсртеор(N) и peremсртеор(N) в теоретической плоскости, в которой могут находиться значения числа сравнений в зависимости от числа элементов в массиве. Для этого совместим графики зависимостей рисунков 2.1 и 2.2 с sravnсртеор(N) и peremсртеор(N ) из таблиц 2 и 3. Эти совмещения приведём ниже (рис. 2.3 и 2.4).
Рис. 2.3 - Среднее значение числа сравнений попадает в теоретическую плоскость на рис 2.1
Рис. 2.4 - Среднее значение числа перемещений попадает в теоретическую плоскость на рис 2.2
Следовательно, можно сделать вывод, что теоретические зависимости среднего числа сравнений от числа элементов в массиве были получены верно.
2.2 Практическое исследование алгоритма прямого включения
Для того, чтобы провести практическое исследование данного алгоритма составим программу, которая будет определять точки sravncpпр и peremсрпр в зависимости от значения числа элементов используемого массива и его упорядоченности(см. ПРИЛОЖЕНИЕ E). Эксперимент проведем десять раз, в каждом массиве поиск будет проводиться по десять раз, для нахождения sravncpпр(n) и peremсрпр(n).Полученные результаты сведём в таблицу 4 и 5. Далее по данным таблиц 4 и 5 построим точки на графике (рис. 2.5 ), соединив которые получим графики зависимостей среднего числа сравнений и перемещений от числа сортируемых элементов массива, sravncpпр(n) и peremсрпр(n), полученные практическим способом.
Таблица 4
Результаты, полученные при двух практических исследованиях (неупорядоченные массивы)
N |
10 |
20 |
30 |
40 |
50 |
60 |
70 |
80 |
90 |
100 |
|
sravnсрпр1 |
31,9 |
127,2 |
247,3 |
408,7 |
675,2 |
950,1 |
1328,7 |
1612,7 |
2019,1 |
2554,1 |
|
sravnсрпр2 |
35,8 |
111,2 |
251,1 |
434 |
667,2 |
909,4 |
1215,6 |
1645,1 |
2094,5 |
2560,1 |
|
peremсрпр1 |
40,9 |
108,2 |
276,3 |
447,7 |
724,2 |
1009,1 |
1397,7 |
1691,7 |
2108,1 |
2653,1 |
|
peremсрпр2 |
44,8 |
130,2 |
280,1 |
473 |
716,2 |
968,4 |
1284,6 |
1724,1 |
2183,5 |
2659,1 |
Таблица 5
Результаты, полученные при трёх практических исследованиях (упорядоченные, обратно упорядоченные, состоящие из нулей массивы)
N |
10 |
20 |
30 |
40 |
50 |
60 |
70 |
80 |
90 |
100 |
|
sravnупоряд |
9 |
19 |
29 |
39 |
49 |
59 |
69 |
79 |
89 |
99 |
|
sravnобрупоряд |
54 |
209 |
464 |
819 |
1274 |
1829 |
2484 |
3239 |
4094 |
5049 |
|
sravnнули |
9 |
19 |
29 |
39 |
49 |
59 |
69 |
79 |
89 |
99 |
|
peremупоряд |
18 |
38 |
58 |
78 |
98 |
118 |
138 |
158 |
178 |
198 |
|
peremобрупоряд |
63 |
228 |
493 |
858 |
1323 |
1888 |
2553 |
3318 |
4183 |
5148 |
|
peremнули |
18 |
38 |
58 |
78 |
98 |
118 |
138 |
158 |
178 |
198 |
Рис. 2.5 - График среднего числа сравнений практических и теоретических измерений
Рис. 2.6 - График среднего числа перемещений практических и теоретических измерений
Если графики зависимостей среднего числа сравнений, полученные практически, расположены внутри теоретических плоскостей, то можно сделать вывод, что практические зависимости среднего числа сравнений от числа элементов в массиве были получены верно. Далее произведём проверку средних значений числа сравнений полученных теоретически и практически. Для этого составим программу №2 (см. ПРИЛОЖЕНИЕ F), которая будет осуществлять вычисления по формуле:
(1.5)
(1.6)
для разных значений числа элементов сортируемого массива.
Данные для расчётов возьмём из таблиц 2,3,4,5. А результаты вычислений самой программы сведём в таблицу 6. После этого произведём необходимый анализ результатов.
Таблица 6
Результат сравнения теоретических и практических результатов исследований программой №2
N |
10 |
20 |
30 |
40 |
50 |
60 |
70 |
80 |
90 |
100 |
|
tsravn, % |
3 |
5 |
13 |
13 |
10 |
10 |
9 |
3 |
6 |
13 |
|
ѓperemesh,% |
11 |
11 |
6 |
13 |
13 |
3 |
12 |
13 |
10 |
9 |
Теперь произведём анализ полученных результатов (табл. 6). Проверим, не превышает ли ошибка в исследованиях инженерную точность, т.е. все ли значения ti ? 14%.В результате проведённого практического исследования удалось установить, что среднее значение числа сравнений входит в теоретическую плоскость возможных значений числа сравнений для исследуемого алгоритма прямого включения. Так же было установлено, что среднее значение число сравнений, полученное практическим экспериментом, практически совпадает со средним значением числа сравнений, полученным по теоретическим формулам. Их отличие не превышает величины инженерной точности при проведении расчётов.
алгоритм массив сравнение прямой
ЗАКЛЮЧЕНИЕ
В данной курсовой работе был исследован алгоритм сортировки методом прямого включения. Для этого было решено произвести литературный обзор по данному алгоритму и выбрать те формулы, которые позволили бы осуществить теоретическое исследование данного метода. Формулы (1.1) - (1.4) характеризовали число сравнений и перестановок наиболее точно. По этим формулам были найдены средние значения количества перемещений и сравнений для массивов с разным количеством элементов. Для практической части была написана программа, которая генерирует массивы с заданным количеством элементов и порядком элементов, возможен и ручной ввод элементов. При практическом исследовании алгоритма была выявлена зависимость скорости работы алгоритма от предварительной сортировки, сортируемого массива. Т.е. скорость работы алгоритма высока при сортировке небольших массивов, а также при сортировке уже сортированных массивов (полностью или частично). И, напротив, скорость низка при сортировке массивов, отсортированных в обратном порядке. Была написана программа №2 для проверки средних значений числа сравнений и перемещений элементов массива полученных теоретически и практически. В результате проверки было установлено, что отличие числа сравнений и перемещений, полученное практически и значение числа сравнений и перемещений, полученные по теоретическим формулам. не превышает величины инженерной точности при проведении расчётов.
Все графики зависимостей и таблицы с данными, для теоретического исследования были выполнены в Microsoft Excel 2007, т.к. на мой взгляд программа позволяет наиболее удобно производить вычисления, а также анализировать и визуализировать данные.
Для проведения практического исследования был выбран язык программирования Pascal, на котором написаны программы №1 и №2, которые приведены в ПРИЛОЖЕНИИ E и F.
СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ
1. Кнут, Дональд, Эрвин. Искусство программирования, том 3. Сортировка и поиск, 2-е изд. : Пер. с англ. - М. : ООО “И.Д. Вильямс”, 2007. - 832с. : ил.
2. Седжвик Роберт. Фундаментальные алгоритмы на C++. Анализ/Структуры данных/Сортировка/Поиск :Пер. с англ./Роберт Седжвик. - К.: Издательство “ДиаСофт”, 2001. - 688с.
3. Структуры и алгоритмы обработки данных. Учебно-методическое пособие по изучению дисциплины/ Сост.:О.Б. Попова; Кубан. гос. технол. ун-т. Каф. Вычислительной техники и АСУ.- Краснодар: Изд. КубГТУ, 2007. - 35с.
4. Ахо А. Структуры данных и алгоритмы/ А. Ахо, Д.Э. Хопкрофт, Д. Ульман. - М.: Издательский дом «Вильямс», 2000.
5. Вирт Н. Алгоритмы и структуры данных. - М.: Издательский дом «Вильямс», 1998.
6. Лойко В.И. Структуры и алгоритмы обработки данных: учебное пособие для вузов. - Краснодар: Изд-во КубГАУ, 2000.
7. Кнут Д. Искусство программирования для ЭВМ. Т.1. Основные алгоритмы. - М.: Издательский дом «Вильямс», 2000.
ПРИЛОЖЕНИЕ E
Код программы №1
uses crt;
type mass=array [1..2000]of integer;
var a:mass;
pr,perem,sravn,sr,m,n,b,i,v,w,z:integer;
peremsr,sravnsr:real;
punkt:byte;
procedure insertion;
var
x,i, k : Integer;
begin
pr:=0; {peremeshenia}
sr:=0; {sravnenia}
for i := 2 to n do { Вставляем в уже отсортированную часть элементы с 2 до n }
begin
k := i; {присваиваем переменной к текущий ключ}
x := a[i]; {присваиваем переменной х значение ключа}
inc(sr); {увеличиваем счётчик сравнений}
inc(pr); {увеличиваем счётчик перемещений}
{ Передвигаем на 1 позицию направо элементы,
большие вставляемого элемента (он записан в x) }
{ Условие k > 1 гарантирует, что мы не выйдем за
границу массива, если вставляется элемент,
меньший всех предыдущих.}
while (A[k - 1] > x) and (k > 1) do
begin
a[k] := a[k - 1];
k := k - 1;
inc(sr); {увеличиваем счётчик сравнений}
inc(pr); {увеличиваем счётчик перемещений}
end;
{ Вставляем элемент в нужную позицию }
a[k] := x;
inc(pr); {увеличиваем счётчик перемещений}
end;
end;
procedure print ; { процедура печати массива в строку}
var i:Integer ;
begin
for i:=1 to n do
write(a[i],' ');
Writeln ;
end ;
procedure vozrastanie; { Заполнение массива числами по возрастанию }
var
i : Integer;
begin
perem:=0;
sravn:=0;
for z := 1 to m do
begin
for i := 1 to n do
a[i] := i;
print;
writeln;
insertion;
print;
perem:=perem+pr; {подсчёт перемещений за м кол-во сортировок}
sravn:=sravn+sr; {подсчёт сравнений за м кол-во сортировок}
end;
peremsr:=perem/m; {среднее знач перемещ. за м сортировок}
sravnsr:=sravn/m; {среднее знач сравнений за м сортировок}
end;
procedure ubivanie; { Заполнение массива числами по убыванию }
var
i : Integer;
begin
perem:=0;
sravn:=0;
for z := 1 to m do
begin
for i := 1 to n do
a[i] := n - i;
print;
writeln;
insertion;
print;
perem:=perem+pr;
sravn:=sravn+sr;
end;
peremsr:=perem/m;
sravnsr:=sravn/m;
end;
procedure nul; { Заполнение массива равными числами (0) }
var
i : Integer;
begin
perem:=0;
sravn:=0;
for z := 1 to m do
begin
for i := 1 to n do
a[i] := 0;
print;
writeln;
insertion;
print;
perem:=perem+pr;
sravn:=sravn+sr;
end;
peremsr:=perem/m;
sravnsr:=sravn/m;
end;
procedure sluchainie; { }
begin
randomize;
perem:=0;
sravn:=0;
for z := 1 to m do
begin
for i := 1 to n do
a[i]:=random(500);
print;
writeln;
insertion;
print;
perem:=perem+pr;
sravn:=sravn+sr;
end;
peremsr:=perem/m;
sravnsr:=sravn/m;
end;
procedure ruchnoi; { }
var
i : Integer;
begin
perem:=0;
sravn:=0;
for z := 1 to m do
begin
for i := 1 to n do
begin
writeln('Vvedite chlen massiva ', i);
readln(a[i]);
end
end;
print;
writeln;
insertion;
print;
perem:=perem+pr;
sravn:=sravn+sr;
peremsr:=perem/m;
sravnsr:=sravn/m;
end;
begin
clrscr;
writeln('Vvedite kolichestvo elementov');
readln(n);
writeln('Vvedite kolichestvo sortirovok');
readln(m);
writeln('viberite deistvie: ');
writeln('1. Sgenerirovat massiv sluchainimi chislami');
writeln('2. Sgenerirovat massiv nulaimi');
writeln('3. Sgenerirovat massiv po ubivaniu');
writeln('4. Sgenerirovat massiv po vozrastaniu');
WriteLn('5. Vvod v ruchnuu');
ReadLn(punkt);
case punkt of
1:sluchainie; {выбор метода генерации массива}
2:nul;
3:ubivanie;
4:vozrastanie;
5:ruchnoi;
end;
writeln;
writeln('Srednee kol-vo peremeshenii dla ',m,' sortirovok=',peremsr:2:1,#13#10,'srednee kol-vo sravnenii=',sravnsr:2:1);
readln;
end.
ПРИЛОЖЕНИЕ F
Код программы №2
program Sravn_Teor_i_Pract_issledovanii;
uses
crt;
type
srednii_znacheniya=array[1..100] of record
sravn_p,perest_p,sravn_t,perest_t:real;
chislo_elem:integer;
otlichie_znach_sr,otlichie_znach_per:real;
end;
massiv=array[1..1000] of integer;
var
s:srednii_znacheniya;
j,h3:integer;
{Для разного числа исследованений определяет среднее число сравнений, перестановок и записывает их в запись с тремя полями}
procedure vvod_znach_pract_teor(var chislo_tochek:integer);
var i,chislo_elem_mas:integer;
begin
writeln('skolko tochek budet na grafike?');
readln(chislo_tochek);
for i:=1 to chislo_tochek do
begin
writeln('Vvedite chislo elementov massiva dlia poluchenia ',i,'-oi tochki');
readln(chislo_elem_mas);
writeln('Vvedite srednee chislo sravnenii , poluchennih prakt. sposobom!');
readln(s[i].sravn_p);
writeln('Vvedite srednee chislo sravnenii, poluchennih teoriticheskim sposobom!');
readln(s[i].sravn_t);
writeln('Vvedite srednee chislo peremeshenii, poluchennih prakt. sposobom!');
readln(s[i].perest_p);
writeln('Vvedite srednee chislo peremeshenii, poluchennih teoriticheskim sposobom!');
readln(s[i].perest_t);
s[i].chislo_elem:=chislo_elem_mas;
end;
end;
{Сравнение исследований как практического, так и теоретического}
procedure sravnenie_p_t_analizov(chislo_tochek:integer);
var i:integer;
begin
for i:=1 to chislo_tochek do
begin
s[i].otlichie_znach_sr:=(s[i].sravn_p-s[i].sravn_t)*100/s[i].sravn_p;
s[i].otlichie_znach_per:=(s[i].perest_p-s[i].perest_t)*100/s[i].perest_p;
end;
end;
begin
vvod_znach_pract_teor (h3);
sravnenie_p_t_analizov(h3);
writeln;
writeln('==================');
for j:=1 to h3 do
begin
writeln('Dla chisla elementov massiva = ',s[j].chislo_elem);
writeln('Otlichie prakticheskogo srednego chisla sravnenii ot teoriticheskogo sostovlaet = ',s[j]. otlichie_znach_sr:3:1, '%');
writeln('Otlichie prakticheskogo srednego chisla peremeshenii ot teoriticheskogo sostovlaet = ',s[j].otlichie_znach_per:3:1, '%');
writeln('==================');
end;
readln;
end.
Размещено на Allbest.ru
Подобные документы
Алгоритмическое решение задач как метод формализации. Реализация простейшей самоорганизующейся таблицы с самоорганизацией методом транспозиции. Описание модулей алгоритма и листинг программы для определения функциональной зависимости в массиве данных.
курсовая работа [219,9 K], добавлен 25.11.2009Понятие и основной принцип действия алгоритмов сортировки информации. Сравнительное исследование и анализ эффективности методов сортировки Шелла и Флойда в виде графиков зависимостей количества сравнений и числа перестановок элементов от объёма данных.
контрольная работа [573,6 K], добавлен 09.11.2010Составление алгоритма сортировки линейной вставкой. Понятие однонаправленного циклического списка символов, реализация процедуры подсчета суммы элементов и составление алгоритма. Прямое представление дерева, алгоритм работы с ним на абстрактном уровне.
контрольная работа [32,8 K], добавлен 20.01.2012Составление программы сортировки по возрастанию массив из 20 шестнадцатеричных чисел, просматривающей все исходные числа во внешней памяти и выбирающей самое большое число. Блок-схема алгоритма работы программы. Таблица команд и число их выполнения.
курсовая работа [23,1 K], добавлен 24.05.2015Разработка программы, сортирующей массивы данных различного типа методом подсчета. Основные шаги алгоритма сортировки, ее свойства и модификация подсчетом. Целесообразность применения сортировки подсчетом. Условия эффективности алгоритма сортировки.
лабораторная работа [438,5 K], добавлен 16.07.2015Алгоритм сортировки Шейкер: математическое описание задачи и описание алгоритма. Алгоритм покрытия: построение одного кратчайшего покрытия. Описание схемы и работы алгоритма на графах: нахождение кратчайшего пути. Контрольные примеры работы алгоритмов.
курсовая работа [43,8 K], добавлен 19.10.2010Описание принципа работы генетического алгоритма, проверка его работы на функции согласно варианту на основе готовой программы. Основные параметры генетического алгоритма, его структура и содержание. Способы реализации алгоритма и его компонентов.
лабораторная работа [20,2 K], добавлен 03.12.2014Понятие алгоритма и сортировки. Способы и алгоритмы сортировки массивов. Быстрая сортировка Хоара. Описание алгоритма "быстрой сортировки". Реализация на языке программирования. Анализ наихудшего разбиения. Вероятностные алгоритмы быстрой сортировки.
курсовая работа [291,5 K], добавлен 22.03.2012Алгоритмы сортировки методами простых вставок и пузырька. Зависимость среднего времени сортировки от числа сортируемых элементов. Функции, осуществляющие сортировку любого количества элементов методом простых вставок, на основе сортировки таблицы адресов.
курсовая работа [557,1 K], добавлен 26.05.2010Требования к интерфейсу программного продукта, характеристика операционной системы Windows XP и языка программирования разветвляющихся и циклических процессов Pascal. Структура условного оператора. Описание алгоритма работы с помощью блок-схемы, листинг.
курсовая работа [268,0 K], добавлен 25.12.2010