Здравствуйте, Andriy Melnyk, Вы писали:
AM>Нужны прежде всего эффективные алгоритмы, а не простой перебор.
AM>Куда копать?
Дык, 2, 3, 4 — это разновидности 1-го.
Поскольку слов немного, то каждому слову пожно сопоставить 2-х байтовое число. Поучаем массив 2-х байтовых чисел A.
1. Чтобы найти частоты слов, достаточно найти частоты соответствующих 2-х байтовых чисел.
2. Чтобы найти частоты пар, достаточно сформировать другой массив 4-х байтовых чисел: B[i] = A[i] + A[i+1] >> 16. И найти частоты этих чисел.
3. Для трех слов можно поступить так же, только в формуле будет учавствовать еще и B[i] = A[i] + A[i+1] >> 16 + A[i+2] >> 32
4. Разновидность 2-го: B[i] = A[i] + A[i+2] >> 16