Хеш группы чисел
Есть набор групп чисел(допустим, массивы). Необходимо быстро и однозначно найти данные, уникальные для каждой группы. Для такой задачи отлично подходят хеш-карты. Но вот проблема - как вычислить хеш для массива чисел? В данный момент у меня работает такой быдлокод: сортирую массив чисел, байты массива перегоняю в строку, считаю хеш для строки. Может быть есть более быстрое решение?
|
crashtuak, язык какой?
|
crashtuak, массив чисел от строки отличается носителем буквы. Допусти это массив 32-разрядных знаковых целых. Тогда можно применить любой алгоритм хеширования, какой придёт в голову. Например:
Код:
typedef unsigned long array_hash; Качество хеша - так себе, но есть большая вероятность, что будут отбиваться последовательности с одинаковым началом, что поможет при последующем линейном поиске. Массивы хранить уже сортированными. |
pva, спасибо, пробил на имеющихся данных - работает хорошо, повторений не было.
|
Время: 00:34. |
Время: 00:34.
© OSzone.net 2001-