Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Структуры данных / 25 сообщений из 35, страница 1 из 2
07.12.2012, 11:58:31
    #38069311
Шмяк
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структуры данных
Вопрос больше из области теории.
Необходимо хранить структуру данных в виде некого набора пар число-число
причем число ключ должно быть уникальным и число значение тоже уникально.
Т.е.
1=5
2=4
3=3
4=2
5=1

Всякие там Map и List не предлагать.
Значений в массиве может быть достаточно много и необходимо минимизировать расход ресурсов на это дело.
Есть здравые предложения? :)
...
Рейтинг: 0 / 0
07.12.2012, 12:09:02
    #38069332
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структуры данных
ШмякВопрос больше из области теории.
Необходимо хранить структуру данных в виде некого набора пар число-число
причем число ключ должно быть уникальным и число значение тоже уникально.

Какой диапазон чисел? byte/int/long/BigDecimal?
Какие основные операции? Какие наиболее частые?

ШмякВсякие там Map и List не предлагать.
Значений в массиве может быть достаточно много и необходимо минимизировать расход ресурсов на это дело.

Ой, да ладно. Экономия на спичках? Сколько "достаточно много"?


ШмякЕсть здравые предложения? :)
Есть opensource реализации коллекций для примитивов.
Сама структура особого смысла не имеет, если не знать какие операции нужны.
Пока только поняли что нужна проверка или замещение при вставке. Так как кажое должно быть уникальным, то, наверное, проверка, а не замещение?
...
Рейтинг: 0 / 0
07.12.2012, 12:17:28
    #38069361
Шмяк
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структуры данных
Операций никаких нет, последовательное чтение элементов.
ключ должен быть всегда последовательный от 1 до Integer.MAX_VALUE, а значение должно быть в том же диапазоне, но перемешено случайным образом.
Ну и специально для BlazkowiczОй, да ладно. Экономия на спичках? Сколько "достаточно много"?
Запишите в Map подобную структуру хотя бы до Integer.MAX_VALUE/2 и посмотрите сколько оно отожрет?
А теперь подобную операцию проделайте на Андроиде, где ресурсы счет любят.
...
Рейтинг: 0 / 0
07.12.2012, 12:24:28
    #38069388
Adva
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структуры данных
Шмяк,

простой массив?
...
Рейтинг: 0 / 0
07.12.2012, 12:25:10
    #38069391
alexanderer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структуры данных
Если ключ полседовательный от 1 до Integer.MAX_VALUE, то нужно что-то типа Set с возможностью получения индекса в качестве ключа.
...
Рейтинг: 0 / 0
07.12.2012, 12:27:49
    #38069397
Шмяк
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структуры данных
:) ну, кнечно больше из области теории.
Да, таки массив. Но хранить в массиве Integer.MAX_VALUE*32bit , кажется не совсем правильным.
...
Рейтинг: 0 / 0
07.12.2012, 12:28:56
    #38069401
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структуры данных
ШмякЗапишите в Map подобную структуру хотя бы до Integer.MAX_VALUE/2 и посмотрите сколько оно отожрет?

Ты прикалываешься?
Integer.MAX_VALUE = 2,147,483,647
Integer.MAX_VALUE / 2 ~ 1G, 4 байта на int - 4Gb.
Тут даже без HashMap обосрешься массив на андроиде создавать.
...
Рейтинг: 0 / 0
07.12.2012, 12:30:19
    #38069405
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структуры данных
ШмякА теперь подобную операцию проделайте на Андроиде, где ресурсы счет любят.
С этого стоило бы начать вопрос. А то любят тут спрашивать-спрашивать, а в конце темы написать, мол J2ME.
...
Рейтинг: 0 / 0
07.12.2012, 12:30:36
    #38069406
Шмяк
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структуры данных
Blazkowicz
Вот если бы все было так просто, я бы и не спрашивала.
...
Рейтинг: 0 / 0
07.12.2012, 12:34:17
    #38069417
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структуры данных
ШмякВот если бы все было так просто, я бы и не спрашивала.
Я спросил сколько ожидается пар. Получил ответ померять Integer.MAX_VALUE/2. Это не похоже на реалистичное значение, потому что даже простой массив такого размера придется размещать на долговременном хранилище, а не памяти.
Поэтому может обсудим реалистичную постановку задачи?
...
Рейтинг: 0 / 0
07.12.2012, 12:37:09
    #38069428
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структуры данных
Так обязательно в памяти размещать? Или можно в файле? Тогда проще, так как ключи упорядочены, можно весь диапазон разбить по сегментам и быстро вычислять сегмент из значения, как в HashMap.
...
Рейтинг: 0 / 0
07.12.2012, 12:45:54
    #38069463
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структуры данных
ШмякОпераций никаких нет, последовательное чтение элементов.
Т.е. это постоянный массив, который в процессе не модифицируется?
...
Рейтинг: 0 / 0
07.12.2012, 12:45:59
    #38069464
Шмяк
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структуры данных
Оки.
Вы вот все хотите подогнать под существующие структуры, желание ясно.
Тогда такая вам институтская задача. :)

Допустим необходимо случайным образом выбирать числа от 1 до Integer.MAX_VALUE.
При этом если генератор случайных чисел выдаст число(масло масляное), которое уже было необходимо остановить обработку.
Как бы вы эту задачу реализовали?
...
Рейтинг: 0 / 0
07.12.2012, 12:46:25
    #38069466
Максим Н
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структуры данных
Шмяк,

Redis, etc
...
Рейтинг: 0 / 0
07.12.2012, 12:48:30
    #38069474
Шмяк
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структуры данных
Массив определяется в начале работы и в процессе уже не меняется.
Т.е. определяется его размер и заполняется данными. И в процессе работы бегаем по нему вперед и назад.
Размер может быть маленьким а может быть максимальным. Закладываемся на критическое значение.
...
Рейтинг: 0 / 0
07.12.2012, 12:48:44
    #38069475
1024
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структуры данных
ШмякОки.
Вы вот все хотите подогнать под существующие структуры, желание ясно.
Тогда такая вам институтская задача. :)

Допустим необходимо случайным образом выбирать числа от 1 до Integer.MAX_VALUE.
При этом если генератор случайных чисел выдаст число(масло масляное), которое уже было необходимо остановить обработку.
Как бы вы эту задачу реализовали?

тебе ж говорят - если данные не убираются в память то надо использовать базу данных. Если убираются то большой разницы между массивом и мапом или листом нет.
...
Рейтинг: 0 / 0
07.12.2012, 12:52:29
    #38069493
Шмяк
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структуры данных
1024 большой разницы между массивом и мапом или листом нет
Учите мат часть, разница есть и большая.
...
Рейтинг: 0 / 0
07.12.2012, 12:53:40
    #38069495
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структуры данных
ШмякВы вот все хотите подогнать под существующие структуры, желание ясно.

А они достаточно оптимизированы. И все мои вопросы снова игнорируются. :(


ШмякДопустим необходимо случайным образом выбирать числа от 1 до Integer.MAX_VALUE.
При этом если генератор случайных чисел выдаст число(масло масляное), которое уже было необходимо остановить обработку.
Как бы вы эту задачу реализовали?
Шафл бы сделал вместо генератора. Опять задача выдрана из конктекста. Я могу кучу вариантов привести, но вы их отметёте, потому что у вас свой контекст и вы его знаете.
На сколько генератор нормально распределен? Можно пробовать выделять диапазоны и вводить для них уровень использованности.
Как долго длиться обработка? Если долго, то массив можно и в файловой системе разместить.
У меня тут куча вопросов, которые влияют на оптимальность решения. А на них нет ни одного ответа.
...
Рейтинг: 0 / 0
07.12.2012, 12:54:30
    #38069497
Шмяк
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структуры данных
1024, студенческая задачка про случайные числа решается без использования файлов и баз данных.
...
Рейтинг: 0 / 0
07.12.2012, 12:57:20
    #38069508
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структуры данных
ШмякУчите мат часть, разница есть и большая.
Нет особой разницы
http://habrahabr.ru/post/159557/
Либо данные можно в памяти разместить, тогда 4-10-20 байт на элемент роли не сыграют.
Либо нельзя тогда размещаем в файловой системе или базе.
...
Рейтинг: 0 / 0
07.12.2012, 12:59:32
    #38069518
Шмяк
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структуры данных
Обработка длится долго.
И если уж конкретней, то в массиве хранятся не сами данные а индексы элементов другого массива, в котором эти данные и есть, он вот и хранится в файле. Типа, индекс :)
Грубо говоря, в файле хранится много-много строк и необходимо эти строки случайным образом перемешать и последовательно обрабатывать вперед, назад... по желанию пользователя. Но в исходном файле данные перемешивать нельзя.
...
Рейтинг: 0 / 0
07.12.2012, 12:59:48
    #38069520
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структуры данных
ШмякМассив определяется в начале работы и в процессе уже не меняется.
Наконце-то детали начали поступать.

ШмякТ.е. определяется его размер и заполняется данными. И в процессе работы бегаем по нему вперед и назад.
Размер может быть маленьким а может быть максимальным. Закладываемся на критическое значение.
Т.е. задача вообще не в том чтобы провалидировать, или наполнить. А исключительно оптимизировать хранение и перебор? Можно же было сразу объяснить?
...
Рейтинг: 0 / 0
07.12.2012, 13:01:32
    #38069526
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структуры данных
ШмякДопустим необходимо случайным образом выбирать числа от 1 до Integer.MAX_VALUE.
При этом если генератор случайных чисел выдаст число(масло масляное), которое уже было необходимо остановить обработку.
Как бы вы эту задачу реализовали?
Как обычно никто не может нормально объяснить что нужно. Вот ещё раз перечитал.
"необходимо остановить обработку" - обработку чего? Где мы её в задаче начали? Вообще весь процесс остановить?
...
Рейтинг: 0 / 0
07.12.2012, 13:04:57
    #38069538
Йуный джавистЪ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структуры данных
При этом если генератор случайных чисел выдаст число(масло масляное), которое уже было необходимо остановить обработку.
Как бы вы эту задачу реализовали?

Используйте фильтр блума.
...
Рейтинг: 0 / 0
07.12.2012, 13:06:17
    #38069543
Шмяк
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структуры данных
Ребята, вы откуда взялись? Вы решаете задачу тупо в лоб!
Т.е. не решаете а просто подгоняете.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Структуры данных / 25 сообщений из 35, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]