Algorithmen & Datenstrukturen
Kapitel 4 · Theorie

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).
Zurück zu Informatik