Binary Search (Binärsuche) den Suchraum bei jedem Schritt halbieren! Statt 7 Versuchen brauchst du maximal 3 – das nennt sich O(log n) Zeitkomplexität. Bei 1 Million Elementen? Nur 20 Schritte! 🤯
def binary_search(arr, target):
left, right = 0, len(arr) - 1
while left <= right:
mid = (left + right) // 2 # Mitte berechnen
if arr[mid] == target:
return mid # Gefunden!
elif arr[mid] < target:
left = mid + 1 # Rechte Hälfte durchsuchen
else:
right = mid - 1 # Linke Hälfte durchsuchen
return -1 # Nicht gefunden
# Bei 7 Brücken: [0,1,2,3,4,5,6]
# Suche sichere Brücke (z.B. Index 5):
# Schritt 1: Mitte = 3 → nicht sicher → rechts
# Schritt 2: Mitte = 5 → SICHER! ✅ (nur 2 Schritte!)
╔══════════════════════════════════════════════════════════╗ ║ BINARY SEARCH TREE - O(log n) Visualisierung ║ ╚══════════════════════════════════════════════════════════╝ 7 sortierte Brücken: [0, 1, 2, 3, 4, 5, 6] Gesucht: Sichere Brücke (Index 5) ┌─────────────── Schritt 1 ───────────────┐ │ Test Mitte: Index 3 → UNSAFE │ │ [0 1 2 (3) 4 5 6] │ │ ↓ Suche RECHTS → │ └─────────────────────────────────────────┘ ┌─────────────── Schritt 2 ───────────────┐ │ Test Mitte: Index 5 → ✓ SAFE! │ │ [4 (5) 6] │ │ ↓ GEFUNDEN! │ └─────────────────────────────────────────┘ ⚡ Resultat: Nur 2 Schritte statt 5! 📊 Effizienz: O(log₂ 7) ≈ 2.8 Schritte Vergleich Linear Search: 5 Schritte (O(n)) Binary Search: 2 Schritte (O(log n)) → 60% schneller!
💡 Tipp: 7 Brücken - nur eine ist sicher! Nutze Binary Search zum Halbieren - O(log n) Effizienz!
Unterstütze mein neues Projekt "Leyla's Code" mit einer Bitcoin-Spende!
💰
Bitcoin-Adresse:
Jede Spende hilft, Leyla's Code weiterzuentwickeln – danke, Captain! 🏴☠️
Willkommen zu den Binär-Brücken! In diesem Level lernst du Binary Search – einen der elegantesten und effizientesten Suchalgorithmen der Informatik. Während eine lineare Suche jeden Eintrag einzeln prüfen muss, halbiert Binary Search den Suchraum bei jedem Schritt!
Zeitkomplexität: O(log n) bedeutet, dass die Anzahl der benötigten Schritte logarithmisch mit der Datenmenge wächst. Praktisch:
Voraussetzung: Die Daten müssen sortiert sein!
Strategie: Divide and Conquer (Teile und Herrsche)
🚀 Real-World Power: Binary Search ist überall! Datenbanken nutzen es für Index-Lookups, Git für Commit-Historie, Betriebssysteme für File-Systeme, und jede Suchfunktion in sortierten Daten basiert darauf!
Linear Search (O(n)): Prüft jedes Element nacheinander – simpel, aber langsam bei großen Datenmengen
Binary Search (O(log n)): Halbiert den Suchraum wiederholt – extrem effizient, braucht aber sortierte Daten
Meistere Binary Search und verstehe die Macht von O(log n) - ein Muss für jeden Entwickler! 🏴☠️