|
Дан массив из 10 элеменов. Первые 4 упорядочить по возрастанию, последние 4 по убыванию.
Алгоритм решения задачи:
В данном случае используется сортировка методом пузырька.
Возникают сложности при сортировке последних четырех элементов массива. Количество проходов (i) и количество сравнений (j) такие же как в первом случае. Однако номера элементов стоят дальше от начала на 6 значений. Поэтому проще при обмене прибавлять к j 6.
Программа на языке Паскаль:
const n = 10;
var
arr: array[1..n] of byte;
i,j,k: byte;
begin
randomize;
write('Original array: ':18);
for i:=1 to n do begin
arr[i]:= random(256);
write(arr[i]:4);
end;
writeln;
for i:=1 to 4 do
for j:=1 to 4-i do
if arr[j] > arr[j+1] then begin
k:= arr[j];
arr[j]:= arr[j+1];
arr[j+1]:= k
end;
for i:=1 to 4 do
for j:=1 to 4-i do
if arr[j+6] < arr[j+7] then begin
k:= arr[j+6];
arr[j+6]:= arr[j+7];
arr[j+7]:= k
end;
write('Sorted array: ':18);
for i:=1 to n do
write(arr[i]:4);
readln; end.
Операторы | n1 | N1 | Операнды | n2 | N2 |
;(.) | n | ||||
:= | i | ||||
>< | j | ||||
+- | k | ||||
Begin end | arr | ||||
For to do |
|
|
| ||
Write(writeln) |
|
|
| ||
readln |
|
|
| ||
Randomize(randome) |
|
|
| ||
If then |
|
|
| ||
const |
|
|
| ||
var |
|
|
|
Метрики Холстеда
Метрики Холстеда отражают лексический подход к измерению характеристик программного обеспечения, основанный на измеримых свойствах алгоритмов. Свойства любого описания алгоритма (или программы для ЭВМ), по мнению Холстеда, могут быть измерены или вычислены на основе следующих метрических характеристик (оценочных элементов):
n1 - количество различных операторов программы;
n2 - количество различных операндов программы;
N1 - общее количество операторов программы;
N2 - общее количество операндов программы.
На их основе Холстед определяет следующие метрики:
словарь программы (в условных единицах)
n = n1+n2, (1) 12+5=17
длина реализации (в условных единицах)
N = N1+N2 (2) 66+49=115
длина программы (в условных единицах)
Ñ = (n1 ´ log2 n1)+(n2´log2 n2), (3) 54,56
объем программы (в битах))
V = (N1+N2) ´ log2(n1+n2). (4) 787,23
потенциальный объем программы
V* = (n2*+2) ´ log2(n2*+2), (5) 8
где n2* - общее число входных и выходных параметров. = 2 (в данном примере)
уровень программы (в условных единицах)
L = V*/ V @ (2´n2)/(n1´ N2), (6) 0,01
уровень языка
l=L´V*, (7) 0,08
интеллектуальное содержание программы (в условных единицах)
I=L´V@(2´n2/n1´ N2)´(N1+N2)´log2(n1+n2) (8) 7,87
работа по программированию (в условных единицах)
E = V/L = V2/V* (9) 78723
время на программирование (в условных единицах)
T = E/S, (10) 4373,5
или Т@(n1´N2´log2n´(n1´log2n1+n2´log2n2))/(2´n2´S), (11)
где S – число Страуда (5<S<20< b>) = 18 по Холстеду.
Сложность вариантов реализации заданного алгоритма D
Дата добавления: 2015-11-04; просмотров: 533 | Нарушение авторских прав
<== предыдущая лекция | | | следующая лекция ==> |
Daftar hadir Tutor dan Staf | | | WASHINGTON (AP) Gallaudet University's board of trustees chose the dean of the school's College of Arts and Sciences to become the first deaf president in the 124-year history of the school for the |