Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> алгоритм, непонятки 
:(
    Опции темы
spbsmile
Дата 15.7.2011, 00:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



дан массив с повторяющимися элементами
Код

aaa
bbb
ddd
bbb
ddd
bbb
 

нужно вывести повторяющиеся строки с указанием количества повторений.
Код

 
ddd 2
bbb 3

мой извращенный ум придумал . такой алгоритм 
есть два индекса i и j. i внешний , j внутренний
Код

int k=o;
for(i=0;i<=arr.length;i++){
     for(j=0;j<=arr.length;j++){
          if(arr[i].equals(arr[j])) {
              g=g+1;          \\после каждого сравнения увеличиваем счетчик
                          }
            System.out.println(g);          \\печатаем счетчик после всех итераций  по j
            System.out.println(arr[i]);            \\печатаем текущий элемент
      } \\ след. i = 1 и т.д.
}
 

в результате я надеюсь получить элемн массива со счетчиками.
(сколько повторений)
про то , что есть повторяющиеся елементы я стараюсь не думать.
то что я напечатаю их несколько раз.
но даже этот метод у меня не получается((((
Код

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 7
at SortString.main(gg.java:91)

если кто-нибудь найдет косяки в моем алгоритме или
предложит более разумный буду ОЧЕНЬ признателен.
PM MAIL   Вверх
COVD
Дата 15.7.2011, 04:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Положить массив в Map<String,List<String>>.
PS т.е. довести закрытый перелом до открытого, а потом лечить по известной схеме. Это основной паттерн программирования. 

Это сообщение отредактировал(а) COVD - 15.7.2011, 04:23
PM MAIL   Вверх
Farmazon
Дата 15.7.2011, 06:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Разработчик
**


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

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



Нафиг одну и ту же строку хранить и в карте и в списках?...

Код

//        String[] array = new String[] { ... };
        Map<String, Integer> result = new HashMap<String, Integer>();
        for (String item : array) {
            Integer count = result.get(item);
            count = (count == null) ? 1 : (count + 1);
            result.put(item, count);
        }
        
//        for(Entry<String,Integer> entry : result.entrySet()) {
//            System.out.println(entry.getKey() + " : " + entry.getValue());
//        }


Добавлено @ 06:04
сложность O(n), против твоего O(n*n)

Добавлено @ 06:05
и впень работу с индексами XD

Это сообщение отредактировал(а) Farmazon - 15.7.2011, 06:56


--------------------
Таково моё общее мнение.
PM MAIL WWW   Вверх
spbsmile
Дата 15.7.2011, 10:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Спасибо!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

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

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


 




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


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

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