Maišytuvas (žodynas) suteikia O(1) vidutinį paieškos, įterpimo ir ištrynimo laiką. Keičiant O(n) atmintį į greitį, daugelį O(n²) algoritmų paverčiama O(n), pakeičiant pakartotines skenavimus momentinėmis paieško.
Idėja
Vietoj to, kad kiekvieną kartą ieškotumėte sąraše, saugokite rastus reikšmes maišytuve ir patikrinkite narystę pastoviu laiku.
Pavyzdys: dviejų skaičių suma per O(n)
():
seen = {}
i, x (nums):
need = target - x
need seen:
(seen[need], i)
seen[x] = i
two_sum([, , , ], )
