Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > сложность исполнения простейших операций


Автор: mrgloom 21.6.2011, 15:14
решаю задачки по вычислительной геометрии
пытаюсь оценить сложность алгоритмов
например определение факта пересечения окружности и отрезка требует 4 умножения 2 сложения  и 2 сравнения.
так вот как сравнивать сами операции по сложности?
например умножение * и сравнение < .

Автор: fish9370 21.6.2011, 16:33
думаю стоит рассмотреть работу АЛУ - это подсистема в процессоре.. там можно узнать какие затраты производятся на ту или иную операцию..

Автор: Modul 21.6.2011, 18:44
Наряду с количеством операций следует оценивать и скорость операций.

Это зависит от компилятора производителя.

Автор: 500mhz 21.6.2011, 20:12
от компилятора зависит сколько он мусора напихает в код.

пс
с точки зрения процессора сравнение < или >  является обычным вычитанием с установкой флагов
а умножение , прибавлением n раз

Автор: bsa 22.6.2011, 12:02
Цитата(500mhz @  21.6.2011,  20:12 Найти цитируемый пост)
с точки зрения процессора сравнение < или >  является обычным вычитанием с установкой флагов
а умножение , прибавлением n раз 

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

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)