Форум: "Начинающим";
Текущий архив: 2006.02.26;
Скачать: [xml.tar.bz2];
ВнизМножества. Написание оптимизированного кода Найти похожие ветки
← →
CMOS © (2006-02-05 20:51) [0]Что такое множество(Set of ..) в Delphi и Pascal? В С++ и в VB их нет. Скорее всего и в Delphi его тоже нет. Наверно это просто массив или, в лучшем случае, дерево поиска.
Что лучше, c т.з. написания оптимизированного кода?
if (x>=10) and (x<=20) then...
или
if x in [10..20] then...
← →
Anatoly Podgoretsky © (2006-02-05 21:06) [1]Множество это тоже самое, что и множество в математике, автор очень бережно к этому отнешься.
Множесто это необязательно числа.
← →
begin...end © (2006-02-05 21:28) [2]> CMOS © (05.02.06 20:51)
> Что такое множество(Set of ..) в Delphi
Если это -- константа или переменная, объявленная как set of ..., то оно представляет из себя битовый массив размером [(мощность_базового_типа div 8) + 1] байт. Проверка на вхождение в множество делается командой BT.
А вот для проверок типа if x in [10..20] никакого массива не создаётся, и они производятся путём арифметических операций (сложение/вычитание) с последующим анализом флагов процессора.
> Что лучше, c т.з. написания оптимизированного кода?
"Практика -- критерий истины" (с)
← →
begin...end © (2006-02-05 21:38) [3]К [2]:
> Проверка на вхождение в множество делается командой BT.
...или TEST.
← →
Германн © (2006-02-06 01:46) [4]
> Что лучше, c т.з. написания оптимизированного кода?
> if (x>=10) and (x<=20) then...
> или
> if x in [10..20] then...
Добавлю ещё, что первый вариант пройдет всегда, а второй - только для целочисленных типов.
← →
CMOS © (2006-02-07 14:20) [5]Динамично ли множество?
Сколько оно будет занимать памяти если в нем содержится только 1 элемент, 10 эл-тов, 255 эл-тов?
← →
evvcom © (2006-02-07 14:33) [6]
> Динамично ли множество?
Статично.
> Сколько оно будет занимать памяти
См. [2]
← →
Digitman © (2006-02-07 14:34) [7]
> CMOS © (07.02.06 14:20) [5]
Все это зависит от конкретного компилятора/интерпретатора.
← →
Loginov Dmitry © (2006-02-07 20:10) [8]
> Что лучше, c т.з. написания оптимизированного кода?
Насчет чисел не проверял, а вот если выполняется проверка символов в строке, то вариант S[i] in ["a".."z" и т.п.] работает быстрее, чем с оператором if. Подозреваю, что и с числами будет то же самое.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.02.26;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.088 c