Male - это кто?

У меня вроде ник есть...
Конечно, приведеныый алгоритм может быть оптимизирован, но по сути он все же сводится к О(n*n).
Возможно повышение эффективности и свдение задачи к алгоритму поиска в бинарном дереве (блин хочется

и котелок уже не варит) но в таком случае необходима оптимизация словаря, введение частот и возможно создание объектов типа строк - как совокупность ячеек. Это позволит получить гораздо более быстрый алгоритм и избежать перелопачивания массивов. Но эту мысль я еще не додумал по причине вышеуказанной.