| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C++ Builder > Повторение числа в масиве |
| Автор: max07 18.11.2005, 13:34 | ||
| Добрый день, Надо найти в масиве самое большее число раз повторяющийся элемент, я написал такой алгоритм, но он находит только по 1-ому элементу, нужна проверка на остальные элементы масива.
Как можно реализовать эту проверку? Спасибо. |
| Автор: _hunter 18.11.2005, 13:45 |
| обнуляй k после первого цикла |
| Автор: max07 18.11.2005, 14:31 |
| Так к будет тогда 0 равен... Или я не так понял? Первый это с i или j? |
| Автор: _hunter 18.11.2005, 14:41 | ||||
дык для этого k++ есть
упс... согласен -- протупил... после нулевого перед первым. |
| Автор: max07 18.11.2005, 16:50 | ||
так чтоли? тогда резултат 1, а должно быть 4... Может по другому както? |
| Автор: _hunter 18.11.2005, 17:27 |
| само-собой 1: у тебя последних двоек сколько? правильно, одна. ты уже пройденные элементы обнуляй. + такой алгоритм у тебя запомнит только последнюю проверку => добавь еще одну переменную для сверки |
| Автор: max07 20.11.2005, 20:19 |
| Так вот меня и интересует куда именно её добавить и какая проверка? |
| Автор: AntonChik 21.11.2005, 06:06 | ||
по-моему лучше сделать так:
сам не компилял, но думаю мысль понятна... |
| Автор: Neitron 21.11.2005, 12:59 |
| Я сам хотел предложить этот способ. Но он не эффективен. |
| Автор: Mayk 21.11.2005, 13:31 | ||
Почему же? Получается 2n [3n, если пообнулять], что гораздо меньше n(n+1)/2. Короче говоря o(n) < o(n*n) Правда если числа идут в разброс (типа {435,23243223,-2321}), то можно map юзать. Так найдем максимум лишь за логарифмическое время.Но оно опять же лучеше чем n*n. |
| Автор: AntonChik 23.11.2005, 07:07 | ||||
ладно, уговорил. делаем в один проход
опять же сам не компилял, но должно поехать... |
| Автор: Exekutor 26.11.2005, 11:23 | ||
|