Such-Algorithmen
Lineare Suche — O(n)
function linearSearch(arr, target) {
for (let i = 0; i < arr.length; i++)
if (arr[i] === target) return i;
return -1;
}Funktioniert auf jeder Liste. Zwingend bei unsortierten Daten.
Binäre Suche — O(log n), aber sortiert
function binarySearch(arr, target) {
let lo = 0, hi = arr.length - 1;
while (lo <= hi) {
const mid = Math.floor((lo + hi) / 2);
if (arr[mid] === target) return mid;
if (arr[mid] < target) lo = mid + 1;
else hi = mid - 1;
}
return -1;
}Voraussetzung: Array sortiert. Bei 1 Million Elementen ≈ 20 Schritte vs. ≈ 500.000.
Hash-Lookup — O(1)
const set = new Set([1, 2, 3, 4, 5]); set.has(3); // true, O(1) erwartet
Wenn du oft suchstSortiere einmal (O(n log n)), dann suche binär (O(log n) pro Anfrage). Oder noch besser: Set/Hash-Map (O(1) pro Anfrage).
