Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.02.26;
Скачать: CL | DM;

Вниз

Множества. Написание оптимизированного кода   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.054 c
2-1139595677
Progger
2006-02-10 21:21
2006.02.26
Передача данных между приложениями.


15-1138870764
Харько
2006-02-02 11:59
2006.02.26
Подключение двух пользователей к одному компьютеру


3-1135705436
jiny
2005-12-27 20:43
2006.02.26
Линки в поле на другую запись


4-1134166676
Volf_555
2005-12-10 01:17
2006.02.26
Ошибка при получинии первых восьми символов строки


2-1139327879
dabreezy
2006-02-07 18:57
2006.02.26
Вопрос по потокам.