Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно
pva pva вне форума

Аватара для pva

Ветеран


Сообщения: 1180
Благодарности: 279

Профиль | Отправить PM | Цитировать


crashtuak, массив чисел от строки отличается носителем буквы. Допусти это массив 32-разрядных знаковых целых. Тогда можно применить любой алгоритм хеширования, какой придёт в голову. Например:
Код: Выделить весь код
typedef unsigned long array_hash;
array_hash make_hash(const long *first, const long *last) {
  array_hash hash = 0;
  for(; first<last; ++first) {hash=(array_hash)(hash*91284645 + *first);}
 /*число вбил от балды, желательно нечётное*/
  return hash;
}
если процессор 32-разрядный, то использовать array_hash = unsigned long, Если 64-, то array_hash = unsigned long long

Качество хеша - так себе, но есть большая вероятность, что будут отбиваться последовательности с одинаковым началом, что поможет при последующем линейном поиске. Массивы хранить уже сортированными.
Это сообщение посчитали полезным следующие участники:

Отправлено: 09:07, 10-05-2013 | #3