0 Tage Serie
javascript / intermediate
Snippet

Implementierung eines einfachen Memoization-Caches

Memoization ist eine Technik zur Optimierung von Funktionen, indem Ergebnisse basierend auf den Eingabeargumenten zwischengespeichert werden. Bei teuren rekursiven Operationen kann dies die Zeitkomplexität massiv senken.

snippet.js
javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
const memoize = (fn) => {
const cache = new Map();
return (...args) => {
const key = JSON.stringify(args);
if (cache.has(key)) return cache.get(key);
const result = fn(...args);
cache.set(key, result);
return result;
};
};
const fibonacci = memoize((n) => {
return n <= 1 ? n : fibonacci(n - 1) + fibonacci(n - 2);
});
nodejs
Erklärung
1
const cache = new Map();
Nutzt eine Map, um Ergebnisse vorheriger Funktionsaufrufe zu speichern.
2
const key = JSON.stringify(args);
Generiert einen eindeutigen Cache-Schlüssel basierend auf den Eingabeargumenten.
3
if (cache.has(key)) return cache.get(key);
Gibt den vorkalkulierten Wert zurück, falls er bereits im Cache existiert.