Здравствуйте, Философ, Вы писали:
Ф>Влад, а подумать!?
Хороший совет. Подумай.
Ф>Специально для тебя эксперимент провёл. Сам бы этого не делал — и так знал.
А на фиг мне твоя подтасованная пенесометрия?
Давай вот твой парсер разберем. Покажи полный алгоритм и я расскажу как его ускорить отказавшись от LinkedList.
А это все бесполезная подтасовка.
Ф>Это если ты итерируешься по одному и тому же. Пример: если сравнивать все символы со всеми символами текста, то будет квадрат, если сравнивать символы ключей с символами текста, то будет произведение кол-ва символов ключей на кол-во символов текста. Это очень разные множества.
Я вообще не понимаю зачем измерять удаление из хэш-табицы и зачем удалять из списков, да еще с поиском по значению и из середины.
Это бред какой-то. Шэш-табилцы и сеты обычно набивают, делают по ним лукап и никогда не чистя. Списки обычно тоже больше для формирования используют.
Ф>Вот, прикинь, у тебя может быть 20 — 30 ключей (мой случай) и ещё много букав в тексте.
20-30 это вообще ни о чем. Вот когда их хотя бы 300К, тогда можно что-то видеть.
Но у тебя реально начинается квдрат, так как ты и внутри своего алгоритма удаления цикл сделал, и используешь эту функцию в каком-то цикле. А два вложенных цикла это уже
O(n²).
Ф>допустим ключей 20, по 4 символа
Ф>текст — 100М
Ф>Тогда:
Ф>O(n²) — 100М*100М
Ф>O(n*m) — 100М*20*4
Я тебе говорю. Покажи свой код. У тебя потери совсем не там где ты их ищешь.