Логарифмический способ фильтрации разреженных значений ..? - PullRequest
0 голосов
/ 17 августа 2011

У меня есть ситуация, когда я показываю матрицу.Матрица содержит значения, большие или равные 0. Поэтому для удобства пользователя я просто добавил ползунок, минимальное значение которого равно 0, а максимальное значение является максимальным значением из матрицы.Поэтому, когда пользователь скользит по ползунку, я просто фильтрую ячейки матрицы и показываю только те ячейки, значение которых больше, чем скользило значение ползунка.

Моя проблема заключается в том, что в матричной таблице значения довольно редки, так как в диапазоне иногда бывает много значений 1-5, а затем 20-25 (могут быть и другие диапазоны).Поэтому, когда я ползу, таблицы сильно уменьшаются.

Теперь я хочу кое-что, чтобы при перемещении ползунка фильтровались только несколько значений.Я думал, есть ли какой-либо логарифмический способ решения этой проблемы ... или может быть каким-то другим способом ...

1 Ответ

0 голосов
/ 17 августа 2011

Если ваша матрица имеет размер M x N, рассмотрите возможность хранения данных в массиве, подобном data[L][2], где L = M x N и data[i][0] - это фактическое значение, а data [i] [1] - это позиция значения в вашем оригинале M x N матрица.

Если data[i][0] отсортировано, вы можете обработать его быстрее, чтобы найти позиции со значениями ниже заданного порога.

Пример:

Матрица

1 2 3
0 7 1
5 1 9

Массив (значение, позиция)

0 1 1 1 2 3 5 7 9
4 1 6 8 2 3 7 5 9

Ячейки со значениями менее 3: 4 1 6 8 2

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...