Чтобы напечатать частоту всех элементов отсортированного массива в 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.