Вопросы к Поиску с Алисой
Несколько стратегий, которые можно использовать для быстрого подсчёта определённых чисел в последовательности:
Сортировка подсчётом. neerc.ifmo.ru Простейший вариант алгоритма для сортировки целых чисел. neerc.ifmo.ru Исходная последовательность чисел длины n хранится в массиве A, а вспомогательный массив C с индексами от 0 до k-1 изначально заполняется нулями. neerc.ifmo.ru Последовательно проходя по массиву A, в C[i] записывают количество чисел, равных i. neerc.ifmo.ru Затем достаточно пройти по массиву C и для каждого числа в диапазоне от 0 до k-1 последовательно записать число number в массив A количество раз, равное C[number]. neerc.ifmo.ru
Подсчёт одинаковых пар чисел. codelab.ru Быстрый алгоритм, который работает за линейное время O(n), но требует O(n) дополнительной памяти на вспомогательный массив для хранения промежуточных результатов. codelab.ru
Выбор стратегии зависит от конкретной задачи и условий её решения.