Prioritätswarteschlangen

From Alda
Revision as of 14:49, 31 May 2008 by Nadia (talk | contribs)
Jump to navigationJump to search

Prioritätswarteschlangen

Heap

  • Datenstruktur optimiert für Prioritätssuche
  • Def: ein linkslastiger Binärbaum ist ein Baum mit <math>d(node.left) \geq d(node.right)</math>

Ein Heap ist ein linkslastiger, perfekt balancierter Baum.

Man kann einen Heap leicht als Array implementieren, wie folgende Grafik veranschaulicht:












Sortieren als Suchproblem

Systematisches Fragen mit True und False kann auch als Baum dargestellt werden.


Hier ein Beispiel.Als Eingabe sind drei Zahlen angegeben a={1,2,3},wobei die Reihenfolge nicht bekannt ist.

Also mit Eingabe von drei Elemnten müssen im ungünstigsten Fall drei Schritte vorgenommen werden.
Die allgemeine Regel lautet: es gibt N mögliche Lösungen
=>der Baum muss N Blätter haben
=>ein baum mit N Blättern hat mindestens die Höhe logN




vollständiger Baum (oder balancierter Baum)Main Page
2^d+1 Knoten
2^d Blätter










Sortieren

N = n!wenn das Arrey n Elemente hat
Zum Beispiel: 3! = 1*2*3 = 6
log6 <math>\approx</math> 2,6 => d = 3
log6 <math>\approx</math> 2,6 ist <math>\approx</math>, weil nicht jeder Pfad zu Ende durchgelaufen sein soll, um die Lösung zu bekommen.