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

int nb
=
pnb
;
int nc
= 0
используют три операции над целыми
числами. Их количество обозначим как
W
1
= 3
.
На втором этапе, выполняемом по инструкции выбора
if( a[na-1] == ’+’ && b[nb-1] == ’+’ ) //a >= 0, b >= 0
return nc = BinarySubtract( c, a, pna, b, pnb ); //c=a-b
используются четыре операции для выражения
a
[
na
1]
==
0
+
0
,
затем
четыре операции для
b
[
nb
1]
==
0
+
0
и одна операция для булевой
дизъюнкции &&. Если условие истинно, то на выполнение операций
внутри функции
BinarySubtract
(
c, a, pna, b, pnb
)
затрачивается коли-
чество операций, равное
BS
2
.
Если условие функции выбора ложно,
то функция
BinarySubtract
( )
не выполняется. Итак, при ложном или
истинном условии осуществляется следующее количество операций
соответственно:
минимальное
W
+
2
min
= 9;
максимальное
W
+
2
max
= 9 +
BS
2
.
Если на втором этапе не выполняет вычитание, то следует третий
этап по инструкции выбора:
if( a[na-1] == ’-’ && b[nb-1] == ’+’ ) //a < 0, b >= 0
{
nc = BinaryAdd( c, a, pna, b, pnb ); //c = a + b
c[nc-1] = ’-’; //c = -( a + b )
return nc;
}
Вычисление условия занимает, как и на предыдущем этапе, де-
вять операций. Если условие истинно, то выполняется сложение
BinaryAdd
( )
и занесение знака
c
[
nc
1]
=
0
0
.
Таким образом, при
ложном или истинном условии используется, соответственно, следу-
ющее количество операций:
минимальное
W
3
min
= 9;
максимальное
W
3
max
= 9 + 2 +
BA
3
.
Если на третьем этапе не выполняется сложение, то по инструкции
выбора следует четвертый этап:
54
ISSN 0236-3933. Вестник МГТУ им. Н.Э. Баумана. Сер. “Приборостроение”. 2012