Проблема, с которой я постоянно сталкиваюсь при написании кода, который рисует изображения научных данных, заключается в следующем:
Учитывая некоторые данные с плавающей запятой, поместите эти данные в слоты (одномерный регистр) или сетку (двумерный регистр) так, чтобы каждый элемент данных находился в элементе слота или сетки, значение которого наиболее близко к значению элемента.
Это не тот случай, когда значения слота / сетки расположены равномерно.
Например, поместите следующие данные в следующие слоты:
данные: 0,1, 0,6, 4,23, 5,1, 7,0
слотов: 0,0, 0,4, 0,6, 1,2, 5,0, 10,0
На практике данных гораздо больше, чем слотов. Поэтому было бы полезно иметь структуру данных, которая бы держала слоты в кэше вместе.
Что было бы неплохо, так это что-то вроде дерева или хеш-таблицы, где вы запрашиваете у дерева значение, соответствующее ключу, но с неаккуратными сравнениями, которые дают наиболее близкое совпадение.
Существует ли такой зверь?
(Прямо сейчас, у меня просто есть циклы, которые делают много сравнений. Похоже, что я мог бы по крайней мере добиться большего успеха, используя бинарный поиск по слотам, хотя ...)