Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Проверить integer на вхождение во множество


Страницы:   1 2

Tinky ©   (2009-08-31 13:45:00) 

Есть множество из 300 предопределенных констант (чисел).
Нужно написать функцию, которая будет возвращать результат типа boolean, говорящий о том, входит ли переданный параметр в это множество.
Набор чисел известный и постоянный (около 300 значений):
29001
29014
29020
...
25625
25626
29163
25666

Как это лучше всего (правильнее) сделать?

function IsInArray(value: integer): boolean;
begin
case value of
29001, 29014, ..., 29163, 25666: result := true;
else result := false;
end;
end;

Функция будет использоваться очень часто (сотни раз в минуту) и время выполнения критично.


Сергей М.   (2009-08-31 14:22:00) [21]

Чтобы

> работало быстро

надо из

> неупорядоченный набор чисел

сделать

> упорядоченный набор чисел


Впрочем на множестве из 300 чисел это ловля блох


Tinky   (2009-08-31 14:10:00) [22]

>Да, кстати, если диапазон чисел невелик, то TBits будет лучше, чем хэш-таблица.
От 10 до 30 тысяч.

Набор можно записать прямо в коде, список не подразумевает модифицирования...


MBo   (2009-08-31 13:58:00) [23]

Да, кстати, если диапазон чисел невелик, то TBits будет лучше, чем хэш-таблица.


Медвежонок Пятачок   (2009-08-31 13:52:00) [24]

не хотелось бы, но придется


Tinky   (2009-08-31 13:50:00) [25]

И конечно не хотелось бы писать:
result := (value = 29001) or (value = 29014) or ...;


MBo   (2009-08-31 13:50:00) [26]

Хэш-таблица.


Tinky   (2009-08-31 13:49:00) [27]

У меня постоянный предопределенный неупорядоченный набор чисел, поэтому скорее подходит название "множество" (необходимо реализовать логическую функцию "вхождение во множество"). Как записать этот набор в коде - роли не играет. Главное, чтобы работало быстро.


Медвежонок Пятачок   (2009-08-31 13:47:00) [28]

хотя множество отпадает сразу


Медвежонок Пятачок   (2009-08-31 13:46:00) [29]

ты бы определился для начала. множество или массив у тебя


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо