Предложите несколько альтернатив для решения проблем, в которых решение грубой силы использует массивы с очень большим индексом и сохраняет очень большие значения (очень большие значения за пределами диапазона INT). Я использую Java для решения этой проблемы.
Проблема с образцом : выкладывание большого количества гальки в очень большую группу ведер, а затем вычисление средней гальки в каждом ковше.
Один из способов - объявить большой массив и продолжать размещать гальки в соответствии с индексами, указанными пользователем, а затем вычислять среднее значение. Но таким образом мы будем использовать большое пространство для такого массива.
Если массив разрежен, одним из параметров может быть Map
индекса для значения.
Если все данные могут поместиться в память, индекс находится за пределами диапазона int
, вы можете рассмотреть массив массивов. Первичный массив может содержать массивы размером, скажем 1000000000. 0-й индекс в этом массиве будет содержать значения 0-999999999, 1-й индекс, 1000000000-1999999999 и т.д.
Другая альтернатива - использование файлов. RandomAccessFile
может помочь сделать это вручную, или могут быть некоторые библиотеки, которые предоставляют вам интерфейс массива и заботятся о RandomAccessFile
файлов за кулисами.