Page 5 - М.Ю. Барышникова, А.Ф. Деон, А.В. Силантьева - СКОРОСТНЫЕ СВОЙСТВА АЛГОРИТМОВ СЛОЖЕНИЯ И ВЫЧИТАНИЯ ЦЕЛЫХ ЧИСЕЛ ПРОИЗВОЛЬНОГО РАЗМЕРА

Также по две операции занимают инструкции
unsigned char
s
=
z
[
nz
1]
с учетом расположения элемента в массиве
z
и ин-
струкция
int n
1
=
n
1
:
W
Allign
2
= 4
.
На выполнение инструкции цикла
for
(
intj
=
nz
1
;
j < n
1
;
j
+ +)
z
[
j
]
= 0
приходится две операции для
int j
=
nz
1
,
одна
операция
j < n
1
,
и на каждой итерации выполняются: одна операция:
проверки условия ‘<’, две операции на увеличение и запоминание
индекса
j
+ +
,
две операции на определение адреса элемента
z
[
j
]
и
запоминания 0:
W
Align
3
= 3 +
n
1
X
j
=
nz
1
(1
+ 2 + 2) =
= 3 + 5(
n
1
(
nz
1))
= 3 + 5(
n
nz
)
.
Если выравнивать байтовый массив числа не следует, то
n
=
nz
.
Максимальное выравнивание происходит, если
nz
= 2
и
n >
2
.
Это
дает возможность найти минимальную
A
min
и максимальную оценку
выполнения функции
Align
( ):
A
min
= 3;
A
max
= 3 + 5(
n
1)
.
Продолжим скоростной анализ второго этапа алгоритма функции
Align
2( ):
W
Align
2
2
= 4 + 3 + 5(
n
2)
= 7 + 5(
n
2)
= 5
n
3
.
На последнем, третьем, этапе функции
Align
2( )
выполняется ин-
струкция условия
if
(
k <
0
)
return BinaryAlign
(
v, nv, k
).
Анализ бы-
стродействия данного этапа полностью совпадает с оценкой
W
Align
2
2
:
W
Align
2
3
= 5
n
3
.
Итак, функция
Align
2( )
делает минимальное количество операций,
когда выравнивание не выполняется. Максимальное количество опе-
раций наступает, когда число из одной цифры дополняется в старших
разрядах до длины второго числа, участвующего в арифметической
операции:
A
min
=
W
Align
2
1
+
W
Align
2
2
.
условие
+
W
Align
2
3
.
условие
= 3 + 1 + 1 = 5;
A
max
=
W
Align
2
1
+
W
Align
2
2
.
условие
+
W
Align
2
3
.
условие
= 3 + 1 + 5
n
3
= 1 + 5
n.
Сложение чисел без учета знаков.
Выравнивание чисел по ко-
личеству цифр позволяет реализовать операцию сложения байтовых
чисел. Учет единиц переноса в старшие разряды можно реализовать
ISSN 0236-3933. Вестник МГТУ им. Н.Э. Баумана. Сер. “Приборостроение”. 2012
43