Я пытаюсь найти частоту каждого символа в любом заданном тексте, используя алгоритм сложности O (n). Мой алгоритм выглядит так:
s = len(text)
P = 1.0/s
freqs = {}
for char in text:
try:
freqs[char]+=P
except:
freqs[char]=P
но я сомневаюсь, что этот словарь-метод достаточно быстр, поскольку он зависит от базовой реализации методов словаря. Это самый быстрый способ?
UPDATE: нет увеличения скорости, если используются коллекции и целые числа. Это связано с тем, что алгоритм уже имеет сложность O (n), поэтому существенное ускорение не возможно.
Например, результаты для текста 1MB:
without collections:
real 0m0.695s
with collections:
real 0m0.625s