|
|
ru.algorithms- RU.ALGORITHMS ---------------------------------------------------------------- From : Rodion Gorkovenko 2:5030/1286.6 25 May 2003 02:15:00 To : Victor Anikeev Subject : координаты -------------------------------------------------------------------------------- 25 May 03 01:55, you wrote to All: VA> Есть матрица размером 256x256 и список координат в ней. VA> Более 90% соседних пар координат расположены в соседних ячейках VA> Как наиболее эффективно хранить список в плане занимаемого места? Я сразу отмечу, что весьма слабо разбираюсь в данном вопросе - а по идее, лучше всего в вопросе разбираешься именно ты, поскольку это твои данные и тебе гораздо лучше видно, как их паковать ;) VA> У меня есть только одна идея. VA> 1. Разбить все координаты на непрерывные группы и в начале каждой VA> группы записать ее размер. Следующие два байта - точные координаты VA> первой точки. Далее только смещения. По-моему очень крутая идея. Альтернативный вариант (изврат!) могу предложить с кодами переменной длины такого позорного свойства, чтобы чем меньше было число, тем короче оно записывалось (как конкретно реализовать - тебе виднее)... Hапример, использовать троичную систему счисления (с записью каждого знака в два бита - комбинация 11 используется для разделения значений) - или семеричную, с записью в три бита... А лучше типа как это - беспрефиксных кодов, что ли? Как у Хаффмана, например... А дальше вопрос в том, как эти значения применить - если, например, точки в матрице часто стоят рядом, но не обязательно соседи, можно записывать для каждой следующей смещение по x и по y, при этом чем меньше смещение, тем короче оно записывается... А можно вместо ортогональных координат использовать вроде того, что предложил ты - по улитке. То есть вокруг центральной точки идут, начиная с северной, против часовой стрелки, номера 0-7, потом отстоящие на две клетки, за номерами 8-23, если я не ошибаюсь, и так далее... Hо тут опять же тебе виднее - если точки чаще всего именно соседствуют - то, по-моему, твоя идея оптимальна... с почтеньем, Rodion --- * Origin: (2:5030/1286.6) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.algorithms/39753ed029b6.html, оценка из 5, голосов 10
|