Форум программистов, компьютерный форум, киберфорум
Алгоритмы
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 14.08.2012
Сообщений: 138

Поиск одинаковых имён и суммирование значений

05.02.2016, 11:24. Показов 1071. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем, привет.

У меня есть своя переменная, которая содержит поля имя и число (в одной переменной, что-то вроде hashmap). Также есть массив, который содержит эти переменные. Массив очень большой. Это выглядит так:
Имя - И Р К В И К Р
Число - 4 5 2 3 4 6 7

Нужно суммировать все числа, которые содержат одинаковое имя, то есть на выходе получим такой массив:
Имя - И Р К В
Число 8 12 8 3

Массив очень большой, поэтому надо сделать оптимальный алгоритм по производительности, у кого какие идеи?

Заранее, спасибо
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
05.02.2016, 11:24
Ответы с готовыми решениями:

Суммирование значений одинаковых строк
Здравствуйте. есть таблица магазина компьютера модели компьютера / филиалы магазина / количество проданных комьютеров ...

Суммирование одинаковых значений таблицы
Имеется таблица 7 столбцов № Наименование Ед.измерения Норма Кол-во Цена Сумма 1 Пропан кг 0,19 0,038...

Суммирование одинаковых значений таблицы
Имеется таблица с несколькими столбцами Руководитель, договор, абонент, объект, объем Иванько, 123, ОАО АУС, 4 дом, 300 . . . ...

5
Модератор
Эксперт функциональных языков программирования
3135 / 2282 / 469
Регистрация: 26.03.2015
Сообщений: 8,884
05.02.2016, 12:43
1. Использовать словарь (в разных языках тип может называться dictionary, map и т.п.).
2. Отсортировать, а потом сгруппировать.

Первый вариант теоретически быстрее - O(n) - но коэффициент может быть большим (зависит от данных и хэшфункции).

Добавлено через 6 минут
В большинстве языков есть готовые стандартные функции для группировки.
0
1969 / 825 / 115
Регистрация: 01.10.2012
Сообщений: 4,888
Записей в блоге: 2
05.02.2016, 18:07
Это типовая задача стандартной библиотеки, надо на плюсах - давайте описание структуры, напишу
0
0 / 0 / 0
Регистрация: 14.08.2012
Сообщений: 138
06.02.2016, 13:14  [ТС]
Shamil1, Всё было бы достаточно просто, если бы было только 2 поля, но я написал задачу упрощённо, на самом деле там 6 полей, просто информация будет дублироваться в остальных полях или не очень значима в текущем контексте.
Igor3D, Да, можно было бы использовать Hashmap или аналогичные классы, но если бы было только ключ-значение, а так стандартные библиотеки уже не подходят.

Решение, я сделал но оно скорее опирается на специфику языка java, чем на оптимальный алгоритм.
0
1969 / 825 / 115
Регистрация: 01.10.2012
Сообщений: 4,888
Записей в блоге: 2
06.02.2016, 13:52
Цитата Сообщение от Delphian Посмотреть сообщение
Да, можно было бы использовать Hashmap или аналогичные классы, но если бы было только ключ-значение, а так стандартные библиотеки уже не подходят.
Это противоречит здравому смыслу (или понятию "стандартная библиотека")

Цитата Сообщение от Delphian Посмотреть сообщение
Shamil1, Всё было бы достаточно просто, если бы было только 2 поля, но я написал задачу упрощённо, на самом деле там 6 полей,
Да хоть 600, это ничего не меняет, просто будет другой (композитный) ключ, и все
0
Модератор
Эксперт функциональных языков программирования
3135 / 2282 / 469
Регистрация: 26.03.2015
Сообщений: 8,884
06.02.2016, 17:51
Читайте документацию:
https://docs.oracle.com/javase... ctors.html

В частности вот такой пример:
Java
1
2
3
4
5
// Compute sum of salaries by department
     Map<Department, Integer> totalByDept
         = employees.stream()
                    .collect(Collectors.groupingBy(Employee::getDepartment,
                                                   Collectors.summingInt(Employee::getSalary)));
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
06.02.2016, 17:51
Помогаю со студенческими работами здесь

Суммирование значений строк, одинаковых по 3-м признакам. Удаление повторов
Добрый день, есть задача: Имеется таблица (более 3000 строк): номер(186 позиций); код; статус; кол-во 1.необходимо-просуммировать...

Использование одинаковых имен значений во вложенных функциях
Добрый день, подскажите пожалуйста, в чем заключаются особенности областей действия имен в F#? Прошу привести пример и объяснить...

Поиск одинаковых имён файлов в двух папках
Доброго времени суток, суть такова: Нужно реализовать bat файл, который при запуске будет искать одинаковые имена в двух разных папках и...

Поиск и суммирование значений по условию в разных листах
Доброго времени суток! У меня в книге Экзеля есть около 80 листов, нужно переодически суммировать данные столбца А, по условию указанном...

Поиск одноименных строк и суммирование их числовых значений
Друзья, нужна помощь! В Excel есть два столбца. Первый содержит текст с одноименными строками, второй числа. Подскажите формулку или...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 19.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru