Schwierige Fragen Algodat
Für das Insert-Verfahren wurden in der Vorlesung drei Verschiedene Varianten diskutiert. Beschreibung:
Vor und Nachteile zur Basisversion
mit Stopper
- weniger Vergleiche - eine Bewegung mehr
mit Binärsuche
- weniger Vergleiche(worst und average) - Vertauschungen gleich
Nehmen Sie für ein Sortierverfahren immer die schlechteste Schlüsselfolge an. Wann ist (Vergleiche) zu erwarten, dass a)Heapsort besser als Quicksort 1/2*(n²-n)>2*n*log2(n) => n=18 b)BU-Heap besser als Quicksort 1/2*(n²-n)>1,5*n*log2(n) => n=12
(Im Datenbereich sind die Sätze aufsteigend sortiert nach Schlüsselwerten.) Die Datensätze sollen sequentiell verarbeitet werden (sortiert nach Schlüsselwerten).Wie organisieren Sie am besten die Verarbeitung bei a) B-Baum-Technik ? Sequentiell im Datenbereich. B-Baum zu viele E/A-Zugriffe b) Streu-Index-Liste ? Sequentiell im Datenbereich. Hashverfahren zerstört sequentielle Eigenschaft C) Sequentieller Organisation ? einfach durchgehen auf Aufgabe vorher verweisen. Wie sind die folgenden Suchverfahren im Vergleich zu bewerten, bezogen auf die Zeit, die für die Schlüsselvergleiche im Duchschnitt benötigt wird? Lineare Liste:
(n+1)/2
Binärbaum:
keinen Sinn
Suchbaum:
1,4 log2(n)
AVL-Baum:
a[mid] return binäresuche(key,mid+1,ub) ELSEIF key
viele Vergleiche weniger Vertauschungen
Nutzen geeigneter Datenstruktur => bei großen Feldern effizienter (Binärbaum) Indexverwaltung mit Hash-Technik: a) Welche der Hash-Varianten setzen Sie ein? Kübeltechnik Begründung: Blockgröße=Kübelgröße => maximale Ausnutzung des Platzes bei minimalen Blockzugriffen b) Welches Kollisionsauflösungsverfahren setzen Sie ein? Linearprobing c) Begründung: große Kübelgröße und hoher Belegungsgrad mittlere Anzahl Suchschritte am besten. d) Berechnen Sie die zur Leistungsbeurteilung erforderlichen Größen (mit Angabe des Lösungsweges) . Kübelgröße berechnen: (Blockgröße-Blockvorspann)/(Schlüssel+Datenzeiger) Begründung anhand Tabelle Vergleichen Sie die beiden Techniken bzgl. der Anzahl der Suchschritte bei Zugriff auf einen Datenblock (mit Begründung) B-Baum-Technik: sehr gut
Nicht möglich
bzgl. Eintragen von Elementen
In Index Bereich nach Einfach. Evtl. Überlaufstrategie Datenbereich suchen. Dann Anwenden eintragen. Evtl. Überlaufstrategie. Aufwendiger
bzgl. Löschen von Elementen
In Index Bereich nach Sehr einfach keine Suche Datenbereich suchen. Im notwendig. Datenbereich nach Element suchen. Löschen Verschiebung nachfolgender Elemente nötig, oder als gelöscht markieren
Weisen Sie nach, dass beim Löschen eines Knotens in einem binären Suchbaum in jedem Fall die Suchbaumeigenschaft erhalten bleibt. 1.Fall: Zu löschendes Element ist ein Blatt (problemlos) 2.Fall: Zu löschendes Element ist Knoten mit einem Unterbaum. Wurzel des Unterbaum nach oben schieben 3.Fall: Zu löschenden Element ist Knoten mit zwei Unterbäumen. Rechtes größtes Blatt linker Teilbaum oder kleinstes Blatt rechter Teilbaum in den Knoten des zu löschenden Elements verschieben.