next up previous contents
Next: 2-Level-Buckets Up: Buckets Previous: Buckets

1-Level-Backets

1-Level-Backets bestehen aus:


\begin{picture}
(160,78)
\small
\put(50,40){
\framebox 
(9.8,10)[tr]{0}}
\put(60...
 ...box(10,5)[l]{$minpos = 6$}}
\put(10,51){\makebox(10,5)[l]{$n = 6$}}\end{picture}

Wie bei jeder Vorrangswarteschlange müssen drei Operationen unterstützt werden: Dazu kommt noch eine Initialisierung Initialize . Für 1-Level-Buckets sehen die Operationen wie folgt aus:
1.
Initialize(x) :


$n:=0, minvalue:=\infty$; reserviere Platz für b (C sei bekannt);

2.
Insert : Füge x in b[Key(x) mod (C+1)] ein


n:=n+1; if (Key(x) < minvalue) then co x ist jetzt das Element mit dem kleinsten Schlüssel oc minpos := Key(x) mod (C+1); minvalue := Key(x); fi

3.
ExtractMin : Entferne ein beliebiges Element aus b[minpos]


n:=n-1; if (n>0) then co suche neues Element mit dem kleinsten Schlüssel oc while b[minpos] ist leer do minpos := (minpos +1) mod (C+1) od minvalue:= Key eines Elements in b[minpos] ; else $minvalue:= \infty$ ; fi

4.
DecreaseKey(x,k) : Entferne x aus seinem momentanen Bucket;


n:=n-1; Key(x) := k; Insert(x);

Bei geeigneter Implementierung der Buckets, zB. als doppellt verkettete Listen gilt:

\fbox {\parbox[c]{12.45cm}{\textbf{Satz:}
 Die worst-case reellen Kosten sind $\...
 ...xtsl{\textsf{Initialize}}
) und 
 \textsl{\textsf{ExtractMin}}
 Operationen.
}}


Beweis: Wird x am Anfang der Liste eingefügt, so müssen bei Insert nur einige Zeiger umgehängt sowie n, minpos und minvalue angepaßt werden, was wieder nur ein paar Zeigeroperationen sind. Die Aktualisierung von n, minpos und minvalue benötigt auch nur konstante Zeit. Für das Finden des nächstkleinsten Elementes müssen aber möglicherweise alle weiteren Buckets betrachtet werden, im schlimmsten Falle C, da bei DecreaseKey das Element x direkt übergeben wird, sind neben dem Einfügen auch nur wenige Zeigeroperationen und je eine Zuweisung an n und Key(x) nötig. $\Diamond$


next up previous contents
Next: 2-Level-Buckets Up: Buckets Previous: Buckets
Abbas-Bardia Kabiri-Jarghouyeh
3/3/1999