Другие языки программирования и технологии

Как найти кол-во одинаковых элементов в массиве? Подскажите алгоритм.

Если требуется найти кол-во элементов с конкретным значением - просто просматриваем все элементы.

Если найти все одинаковые элементы, то проще отсортировать и сравнивать рядом стоящие элементы в отсортированном массиве: если текущее значение равно предыдущему - увеличиваем счётчик на 1 и переходим к следующему элементу, если не равно - выводим предыдущее значение и значение счётчика и сбрасываем счётчик на 1 и опять же - переходим к следующему элементу.
Олег Олег
Олег Олег
53 797
Лучший ответ
Можно взять первый элемент и сравнить его со вторым, третьим, …, последним.
В случае совпадений помечать совпадающий элемент как использованный*.
Вывести на экран значение элемента и количество вхождений (можно и их номера**).
Затем взять второй элемент и если он не помечен как "использованный" то сравнить его с третьим, четвертым…
Так повторять до самого конца массива.
___
* завести, например, массив "пометок" длины аналогичной данному.
** если нашелся хоть один совпадающий, то вывести номер текущего и найденного, потом продолжать выводить номера найденных.
Если элементы целые и их диапазон не очень велик, то можно с помощью сортировки подсчетом найти кол-во одинаковых за O(n)
Илья Кряквин
Илья Кряквин
10 928
Чё тут подсказывать то?
Пробегаешь массив, смотришь одинаковые, подсчитывая их и всё.

Это тривиальное задание, на разных языках кучи реализаций.
Попу напрягите и найдите.
Тебе отдохнуть надо.
Если после отдыха не приходят мысли - бросай, не твоё это.
Юрий Нечеснов
Юрий Нечеснов
6 850

Похожие вопросы