Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сложности с алгоритмами 
:(
    Опции темы
Liz
Дата 26.8.2018, 05:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 26.8.2018

Репутация: нет
Всего: нет



Задача такова, мучаюсь уже третий день :(
У меня есть огромный файл, из которого я считываю данные в ArrayList объектов. В итоге я получаю много объектов класса Result, состоящие из трех пунктов: String userId, String typeId, double evaluation.
Мне надо наименьшим количеством проходов по массиву определить:
1. Все пользовательские Id, которые чаще всех встречаются. Аналогично, все Id типов
2. Все пользовательские Id, с наибольшей оценкой. (тут проще, я нахожу max, а потом по циклу вывожу id, может, есть лучше способ?)
userId по типу: С13DGULS36MOYW
typeID: K134RR6KK9
evaluation: 4.8
Спасибо большое!!
PM MAIL   Вверх
LSD
Дата 27.8.2018, 13:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15708
Регистрация: 24.3.2004

Репутация: нет
Всего: 537



Цитата(Liz @  26.8.2018,  06:31 Найти цитируемый пост)
Все пользовательские Id, которые чаще всех встречаются.

Все которые чаще всего встречаются - это просто все ID  smile Скорее всего тут должны быть не все, а N наиболее часто встречающихся.
Боюсь что тут придется делать 2 прохода. Первый считаем для каждого ID количество вхождений, второй отбираем N наиболее часто встречающихся.


Цитата(Liz @  26.8.2018,  06:31 Найти цитируемый пост)
Аналогично, все Id типов

Создаешь Map<String, List<String>> и заполняешь по мере прохождения по списку.


Цитата(Liz @  26.8.2018,  06:31 Найти цитируемый пост)
Все пользовательские Id, с наибольшей оценкой. (тут проще, я нахожу max, а потом по циклу вывожу id, может, есть лучше способ?)

Можно сделать за один проход: сохраняем оценку и список ID с данной оценкой.
Если очередной Result обладает более высокой оценкой: то сохраняем её как максимум, а список ID с данной оценкой очищаем и добавляем туда текущий элемент.
Если очередной Result обладает оценкой равной текущей максимальной, то добавляем его в список.
Если очередной Result обладает оценкой меньшей текущей максимальной, то пропускаем его.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
Akina
Дата 27.8.2018, 14:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20570
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 20
Всего: 453



Цитата(Liz @  26.8.2018,  06:31 Найти цитируемый пост)
У меня есть огромный файл, из которого я считываю данные в ArrayList объектов.

А затолкать один раз этот "огромный файл" в какую-никакую БД (а хоть бы и встраиваемую) да и переложить на неё все эти геморрои - не? Для индексированной таблицы получение требуемых данных - тьфу!


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Liz
Дата 28.8.2018, 09:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 26.8.2018

Репутация: нет
Всего: нет



Спасибо всем за помощь!
PM MAIL   Вверх
LSD
Дата 28.8.2018, 13:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15708
Регистрация: 24.3.2004

Репутация: нет
Всего: 537



Цитата(Akina @  27.8.2018,  15:19 Найти цитируемый пост)
А затолкать один раз этот "огромный файл" в какую-никакую БД (а хоть бы и встраиваемую) да и переложить на неё все эти геморрои - не?

Это не алгоритм.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
Akina
Дата 28.8.2018, 15:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20570
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 20
Всего: 453



Цитата(LSD @  28.8.2018,  14:38 Найти цитируемый пост)
Это не алгоритм. 

Ну почему? "Провести предварительную подготовку массива данных для того, чтобы не пришлось самостоятельно рожать алгоритм и создавать программный код для его реализации" - тоже вполне себе алгоритм. Алгоритм упрощения себе жизни... 

И потом - что-то мне подсказывает, что автору решить задачу важнее, чем сделать это непременно по собственноручно реализованному алгоритму...


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
LSD
Дата 29.8.2018, 12:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15708
Регистрация: 24.3.2004

Репутация: нет
Всего: 537



Цитата(Akina @  28.8.2018,  16:29 Найти цитируемый пост)
И потом - что-то мне подсказывает, что автору решить задачу важнее, чем сделать это непременно по собственноручно реализованному алгоритму... 

Мне наоборот кажется, что задача учебная. И способ решения важнее, результата.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
Akina
Дата 29.8.2018, 13:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20570
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 20
Всего: 453



Цитата(LSD @  29.8.2018,  13:52 Найти цитируемый пост)
Мне наоборот кажется, что задача учебная. И способ решения важнее, результата. 

Ну тогда требуемые данные нужно получать непосредственно во время считывания. Чё ждать-то?

И потом - вообще непонятно, чей и какой это имеется в виду ArrayList. Если из java - то нафига что-то мапить, когда есть Collections.frequency, который всё это сделает за нас. А если из .Net - так можно его Sort и не париться с мапом, тупо просчитав в один проход...


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
LSD
Дата 29.8.2018, 18:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15708
Регистрация: 24.3.2004

Репутация: нет
Всего: 537



Цитата(Akina @  29.8.2018,  14:16 Найти цитируемый пост)
И потом - вообще непонятно, чей и какой это имеется в виду ArrayList. Если из java - то нафига что-то мапить, когда есть Collections.frequency, который всё это сделает за нас.

Теме была из Java перенесена.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
Akina
Дата 29.8.2018, 22:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20570
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 20
Всего: 453



Тогда это в минус переносившему - надо было указать... 


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Munaya
Дата 14.12.2020, 16:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 13.12.2020

Репутация: нет
Всего: нет




Модератор: Сообщение скрыто.

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.1852 ]   [ Использовано запросов: 20 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.