O(nΒ²). Quick Sort dagegen? Ein gerissener KapitΓ€n, der den Haufen clever aufteilt β blitzschnell mit O(n log n)! π΄ββ οΈO(nΒ²)O(n log n)O(n log n)
# BUBBLE SORT - O(nΒ²) - "Der LangsamlΓ€ufer"
def bubble_sort(arr):
n = len(arr)
for i in range(n):
for j in range(0, n-i-1):
if arr[j] > arr[j+1]:
arr[j], arr[j+1] = arr[j+1], arr[j] # swap()
return arr
# Bei 10.000 Elementen: ~100 Millionen Vergleiche! π±
# QUICK SORT - O(n log n) - "Der Blitz"
def quick_sort(arr):
if len(arr) <= 1:
return arr
pivot = arr[len(arr) // 2] # WΓ€hle Pivot
left = [x for x in arr if x < pivot] # Kleiner als Pivot
middle = [x for x in arr if x == pivot]
right = [x for x in arr if x > pivot] # GrΓΆΓer als Pivot
return quick_sort(left) + middle + quick_sort(right)
# Bei 10.000 Elementen: nur ~130.000 Vergleiche! π
swap(), um sie in die richtige Reihenfolge zu bringen. Denke wie Quick Sort: Teile das Problem, erobere es schrittweise!ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β BUBBLE SORT vs QUICK SORT - Schritt fΓΌr Schritt β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ Unsortiert: [8, 3, 12, 1, 7] βββββββββββ BUBBLE SORT (O(nΒ²)) βββββββββββ β Runde 1: [3, 8, 1, 7, 12] β 4 swaps β β Runde 2: [3, 1, 7, 8, 12] β 3 swaps β β Runde 3: [1, 3, 7, 8, 12] β 2 swaps β β Runde 4: [1, 3, 7, 8, 12] β 1 swap β β Total: 10 Vergleiche, 10 Swaps β βββββββββββββββββββββββββββββββββββββββββββ βββββββββββ QUICK SORT (O(n log n)) βββββββ β Pivot: 7 (Mitte) β β Links: [3, 1] β Quick Sort rekursiv β β Mitte: [7] β β Rechts: [8, 12] β Quick Sort rekursiv β β β β Links sortiert: [1, 3] (Pivot: 1) β β Rechts sortiert: [8, 12] (Pivot: 8) β β β β Ergebnis: [1, 3, 7, 8, 12] β β Total: 7 Vergleiche, 0 Swaps β βββββββββββββββββββββββββββββββββββββββββββ β‘ Performance (10.000 Elemente): Bubble Sort: ~50.000.000 Operationen β 10 Sekunden Quick Sort: ~130.000 Operationen β 0.01 Sekunden β Quick Sort ist 1000x schneller!
π‘ Tipp: Monster sind chaotisch sortiert - nutze swap() um Reihenfolge zu Γ€ndern!
UnterstΓΌtze mein neues Projekt "Leyla's Code" mit einer Bitcoin-Spende!
π°
Bitcoin-Adresse:
Jede Spende hilft, Leyla's Code weiterzuentwickeln danke, Captain! π΄ββ οΈ
Willkommen in der Welt der Sortier-Algorithmen! In Level 27 lernst du, wie Computer Daten effizient ordnen. Von Bubble Sort bis Quick Sort β verstehe die Unterschiede in Performance und KomplexitΓ€t!
Ein Sortier-Algorithmus ordnet Daten in einer bestimmten Reihenfolge β aufsteigend oder absteigend. Die Wahl des richtigen Algorithmus kann den Unterschied zwischen Millisekunden und Stunden ausmachen!
Bubble Sort ist der simpelste Sortier-Algorithmus: Er vergleicht benachbarte Elemente und tauscht sie, wenn sie in der falschen Reihenfolge sind. Einfach, aber langsam bei groΓen Datenmengen!
Quick Sort ist deutlich effizienter: Er wΓ€hlt ein "Pivot"-Element und teilt die Liste in zwei HΓ€lften β kleinere und grΓΆΓere Werte. Dann wird das Verfahren rekursiv auf beide HΓ€lften angewendet. Schnell und elegant!
π Praxis-Tipp: FΓΌr kleine Datenmengen (unter 100 Elementen) ist die Wahl des Algorithmus egal. Bei 1 Million Elementen macht Quick Sort den Unterschied zwischen 2 Sekunden und 30 Minuten!
Meistere die Sortierung und werde zum Algorithmen-Experten! π΄ββ οΈ