![]() |
|
Модераторы: volvo877, Snowy, MetalFan |
![]()
|
|
| Innuendo |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 745 Регистрация: 24.12.2005 Где: Молдова Репутация: нет Всего: 6 |
Есть список с числовыми данными. Нужно вывести число (или числа если их много), которое встречается больше всего раз в этом списке.
Мне важен именно алгоритм. Я могу конечно пробежаться по списку, посчитать сколько раз встречается каждый элемент и вывести наибольшее из этого нового списка полученного. Но может быть есть более рациональный способ? -------------------- =) |
|||
|
||||
| greenpc |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 29.1.2007 Репутация: нет Всего: нет |
1. сортировка (метод выбирай сам)
2. str_out : string; count_out, tmpInt, j : integer; str_out := IntToStr(mas[0]); tmpInt :=mas[0] j :=1; count_out :=j for i :=1 to count do begin if mas[i]= tmpInt then Inc(j) else begin if j>count_out then str_out :=IntToStr(mas[i-1]); if j=count_out then str_out := str_out+', '+IntToStr(mas[i-1]); count_out :=j; tmpInt := IntToStr(mas[i-1]); j:=1; end; end; write('Числа :'+str_out'+ ' кол-во вхождений '+ IntToStr(count_out)); PS : не помню ф-цию перевода целого в строку (ValStr ?). Могут быть ошибки PS1 : mas - массив чисел, count - кол-во чесел Это сообщение отредактировал(а) greenpc - 17.4.2007, 10:58 |
|||
|
||||
![]()
|
| Правила форума "Delphi" | |
|
|
Запрещается! 1. Обсуждать и делится взломанными компонентами или программным обеспечением 2. Публиковать ссылки на варез 3. Оффтопить
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, THandle, Rrader, volvo877. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Object Pascal: кроссплатформенные технологии | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |