Мемоизация — это техника оптимизации, используемая в программировании для ускорения выполнения функций путем кэширования результатов их вызова при определенных входных параметрах.
При последующем вызове функции с теми же аргументами, что были использованы ранее, функция не вычисляет результат заново, а возвращает сохраненное (запомненное) значение из кэша.
Это особенно эффективно для ресурсоемких функций с детерминированным поведением (функций, которые всегда возвращают один и тот же результат для одних и тех же входных данных).
Преимущества:
Недостатки:
Пример на JavaScript:
javascript
В данном примере, без мемоизации, функция fibonacci пересчитывает одни и те же значения многократно. Мемоизированная версия memoizedFibonacci сохраняет вычисленные значения в объекте cache, значительно ускоряя последующие вызовы с теми же аргументами.