Быстрое преобразование неупорядоченных данных в упорядоченные
Для начала дисклеймер, речь НЕ про сортировку.
Допустим, есть набор чисел. Можно создать массив, перечислив в нем эти числа (например M[3]={123, 8, 5867} ), а затем получать их, просто обращаясь к массиву по индексу.
0 -> 123
1 -> 8
2 -> 5867
Тривиально.
Возможно ли (фундаментально) обратное решение? Так же тривиально преобразовывать значение массива в индекс?
123 -> 0
8 -> 1
5867 -> 2
Понятно, что можно, например, отсортировать массив, а затем делать поиск по нему. Но это все таки некоторая процедура (и затраты времени), а хотелось бы решение, которое позволяло бы это делать, условно, за одну операцию.
Источник: Stack Overflow на русском