Чтобы напечатать частоту всех элементов отсортированного массива в Java, вы можете использовать различные методы. Вот несколько разных подходов:
Метод 1: линейное сканирование
- Инициализировать переменную
count
значением 1. - Перебрать отсортированный массив, начиная со второго элемента.
- Сравните текущий элемент с предыдущим элементом.
- Если они одинаковые, увеличьте переменную
count
. - Если они разные, выведите предыдущий элемент и его частоту (
count
), а затем сбросьтеcount
на 1.
- Если они одинаковые, увеличьте переменную
- Выведите последний элемент и его частоту.
Метод 2: HashMap
- Создайте HashMap для хранения элементов и их частот.
- Перебрать отсортированный массив.
- Проверьте, существует ли элемент как ключ в HashMap.
- Если да, увеличьте соответствующее значение (частоту) на 1.
- Если это не так, добавьте элемент в качестве нового ключа и установите его значение 1.
- Распечатать элементы и их частоты из HashMap.
Метод 3: двоичный поиск
- Пройтись по отсортированному массиву и использовать двоичный поиск, чтобы найти первое и последнее вхождение каждого элемента.
- Рассчитайте частоту каждого элемента, вычитая индекс первого появления из индекса последнего появления и прибавляя 1.
- Выведите элементы и их частоты.
Метод 4: два указателя
- Используйте два указателя:
i
иj
, инициализированные значением 0. - Перебрать отсортированный массив с помощью указателя
i
. - Увеличивать указатель
j
до тех пор, пока элемент с индексомj
не будет отличаться от элемента с индексомi
. - Распечатайте элемент с индексом
i
и его частоту (j
минусi
), затем обновитеi
доj
.