ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δοµές Δεδοµένων

Σχετικά έγγραφα
ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δοµές Δεδοµένων

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Εξωτερική Αναζήτηση και Β-δέντρα Κεφάλαιο 16. Ε. Μαρκάκης Επίκουρος Καθηγητής

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Ουρές προτεραιότητας Κεφάλαιο 9. Ε. Μαρκάκης Επίκουρος Καθηγητής

Δοµές Δεδοµένων. 14η Διάλεξη Δέντρα Δυαδικής Αναζήτησης. Ε. Μαρκάκης

Δοµές Δεδοµένων. 16η Διάλεξη Κατακερµατισµός. Ε. Μαρκάκης

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Ουρές προτεραιότητας Κεφάλαιο 9. Ε. Μαρκάκης Επίκουρος Καθηγητής

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Αρχές Ανάλυσης Αλγορίθµων Κεφάλαιο 2. Ε. Μαρκάκης Επικ. Καθηγητής

Διασυνδεδεμένες Δομές. Δυαδικά Δέντρα. Προγραμματισμός II 1

Δοµές Δεδοµένων. 18η Διάλεξη Ισορροπηµένα δέντρα. Ε. Μαρκάκης

ΕΝΟΤΗΤΑ 6 ΛΙΣΤΕΣ ΠΑΡΑΛΕΙΨΗΣ (SKIP LISTS)

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Πίνακες Συµβόλων Κεφάλαιο 12 ( ) Ε. Μαρκάκης Επίκουρος Καθηγητής

Αλγόριθµοι και Πολυπλοκότητα

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Δέντρα Αναζήτησης. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Οικονοµικό Πανεπιστήµιο Αθηνών. Τµήµα Πληροφορικής. Φθινοπωρινό Εξάµηνο Δοµές Δεδοµένων - Εργασία 2. Διδάσκων: E. Μαρκάκης

#include <stdlib.h> Α. [-128,127] Β. [-127,128] Γ. [-128,128]

Θεωρητικό Μέρος. int rec(int n) { int n1, n2; if (n <= 5) then return n; else { n1 = rec(n-5); n2 = rec(n-3); return (n1+n2); } }

8. Σωροί (Heaps)-Αναδρομή- Προχωρημένη Ταξινόμηση

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Κατακερµατισµός Κεφάλαιο 14. Ε. Μαρκάκης Επίκουρος Καθηγητής

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΛΥΣΗ ΣΤΗΝ ΕΥΤΕΡΗ ΑΣΚΗΣΗ

Στοιχειώδεις Δομές Δεδομένων

ΠΛΗ111. Ανοιξη Μάθηµα 8 ο. Αναζήτηση. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης

Δοµές Δεδοµένων. 9η Διάλεξη Ταξινόµηση - Στοιχειώδεις µέθοδοι. Ε. Μαρκάκης

Δοµές Δεδοµένων. 5η Διάλεξη Λίστες και αρχές ανάλυσης αλγορίθµων. Ε. Μαρκάκης

Στοιχεία Αλγορίθµων και Πολυπλοκότητας

Διάλεξη 17: Δυαδικά Δέντρα. Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

Οργάνωση αρχείων: πως είναι τοποθετηµένες οι εγγραφές ενός αρχείου όταν αποθηκεύονται στο δίσκο

ΠΛΗ111. Ανοιξη Μάθηµα 7 ο. έντρο. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης

Δοµές Δεδοµένων. 17η Διάλεξη Ισορροπηµένα δέντρα. Ε. Μαρκάκης

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Δέντρα Δυαδικής Αναζήτησης Κεφάλαιο 12 ( ) Ε. Μαρκάκης Επίκουρος Καθηγητής

Άσκηση 1 (ανακοινώθηκε στις 20 Μαρτίου 2017, προθεσμία παράδοσης: 24 Απριλίου 2017, 12 τα μεσάνυχτα).

Ενότητες 3 & 4: Δένδρα, Σύνολα & Λεξικά Ασκήσεις και Λύσεις

Το εσωτερικό ενός Σ Β

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ EPL035: ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ

Δοµές Δεδοµένων. 4η Διάλεξη Στοιχειώδεις Δοµές Δεδοµένων: Πίνακες και Λίστες. Ε. Μαρκάκης

ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ

Δοµές Δεδοµένων. 12η Διάλεξη Διάσχιση Δέντρων και Ουρές Προτεραιότητας. Ε. Μαρκάκης

Εισαγωγή στην Επεξεργασία Ερωτήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

ΠΛΗ111. Ανοιξη Μάθηµα 3 ο. Συνδεδεµένες Λίστες. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης

Δοµές Δεδοµένων. 15η Διάλεξη Δέντρα Δυαδικής Αναζήτησης και Κατακερµατισµός. Ε. Μαρκάκης

Αλγόριθμοι Ταξινόμησης Μέρος 2

Διάλεξη 22: Δυαδικά Δέντρα. Διδάσκων: Παναγιώτης Ανδρέου

Α Β Γ static; printf("%c\n", putchar( A +1)+2); B DB BD. int i = 0; while (++i); printf("*");

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων

Δοµές Δεδοµένων. 6η Διάλεξη Αναδροµικές Εξισώσεις και Αφηρηµένοι Τύποι Δεδοµένων. Ε. Μαρκάκης

Red-Black Δέντρα. Red-Black Δέντρα

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Ταξινόµηση Mergesort Κεφάλαιο 8. Ε. Μαρκάκης Επίκουρος Καθηγητής

Επεξεργασία Ερωτήσεων

Βασικές Έννοιες Δοµών Δεδοµένων

Προγραμματισμός Ι (ΗΥ120)

Εισαγωγή στην Επεξεργασία Ερωτήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Άσκηση 3 (ανακοινώθηκε στις 24 Απριλίου 2017, προθεσμία παράδοσης: 2 Ιουνίου 2017, 12 τα μεσάνυχτα).

Διάλεξη 16: Σωροί. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Ουρές Προτεραιότητας - Ο ΑΤΔ Σωρός, Υλοποίηση και πράξεις

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ

ΘΕΜΑΤΑ ΕΞΕΤΑΣΗΣ ΚΑΙ ΑΠΑΝΤΗΣΕΙΣ

Διάλεξη 26: Σωροί. Διδάσκων: Παναγιώτης Ανδρέου

Ταξινόμηση με συγχώνευση Merge Sort

Δοµές Δεδοµένων. 11η Διάλεξη Ταξινόµηση Quicksort και Ιδιότητες Δέντρων. Ε. Μαρκάκης

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

Κεφάλαιο 8 Ισορροπημένα Δένδρα Αναζήτησης

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Στοιχειώδεις Δοµές Δεδοµένων Λίστες Κεφάλαιο 3 (3.3, 3.4, 3.7) Ε. Μαρκάκης Επικ. Καθηγητής

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Cuckoo Hashing. Αλγόριθμοι και Πολυπλοκότητα. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο

Κεφάλαιο 2. Η δοµή δεδοµένων Σωρός και η Ταξινόµηση Σωρού (The Heap data structure and Heapsort) Έκδοση 1.1, 12/05/2010

Διάλεξη 14: Δέντρα IV B Δένδρα. Διδάσκων: Παναγιώτης Ανδρέου

1. Η χειρότερη περίπτωση είναι όταν γίνου 10 επαναλήψεις, δηλαδή για n = 0.

Αναδρομικοί Αλγόριθμοι

Διδάσκων: Παναγιώτης Ανδρέου

Κεφάλαιο 6 Ουρές Προτεραιότητας

Προγραμματιστικές Τεχνικές

Πρόβληµα (ADT) Λεξικού. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Λεξικό, Union - Find 2

Διάλεξη 17: O Αλγόριθμος Ταξινόμησης HeapSort

9. Κόκκινα-Μαύρα Δέντρα

ΕΝΟΤΗΤΑ 7 ΟΥΡΕΣ ΠΡΟΤΕΡΑΙΟΤΗΤΑΣ ΣΩΡΟΙ

Δομές δεδομένων (2) Αλγόριθμοι

Διδάσκων: Κωνσταντίνος Κώστα

Εισαγωγή. Γενική Εικόνα του Μαθήµατος. Το εσωτερικό ενός Σ Β. Εισαγωγή. Εισαγωγή Σ Β Σ Β. Αρχεία ευρετηρίου Κατάλογος συστήµατος Αρχεία δεδοµένων

Επεξεργασία Ερωτήσεων

d k 10 k + d k 1 10 k d d = k i=0 d i 10 i.

Επεξεργασία Ερωτήσεων

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Στοιχειώδεις Δοµές Δεδοµένων Λίστες Κεφάλαιο 3 (3.3, 3.4, 3.7) Ε. Μαρκάκης Επικ. Καθηγητής

Δομές Αναζήτησης. κλειδί από ολικά διατεταγμένο σύνολο. Θέλουμε να υποστηρίξουμε δύο βασικές λειτουργίες: Εισαγωγή ενός νέου στοιχείου

Διάλεξη 07: Λίστες Ι Υλοποίηση & Εφαρμογές

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ Η/Υ (ΟΜΑΔΑ ΘΕΜΑΤΩΝ A)

Initialize each person to be free. while (some man is free and hasn't proposed to every woman) { Choose such a man m w = 1 st woman on m's list to

Α. unsigned int Β. double. Γ. int. unsigned char x = 1; x = x + x ; x = x * x ; x = x ^ x ; printf("%u\n", x); Β. unsigned char

Επεξεργασία Ερωτήσεων

Δομές Δεδομένων και Αλγόριθμοι

HY240 : Δομές Δεδομένων. Φροντιστήριο Προγραμματιστικής Εργασίας 2 ο και 3 ο Μέρος

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων

Αλγόριθμοι Ταξινόμησης Μέρος 4

Δομές Δεδομένων & Αλγόριθμοι

Union Find, Λεξικό. Δημήτρης Φωτάκης. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών. Εθνικό Μετσόβιο Πολυτεχνείο

Προγραμματιστικές Τεχνικές

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΑΣΚΗΣΗ ΔΕΥΤΕΡΗ

Ενότητα 9 Ξένα Σύνολα που υποστηρίζουν τη λειτουργία της Ένωσης (Union-Find)

Διάλεξη 12: Δέντρα ΙΙ Δυαδικά Δέντρα

Αλγόριθμοι και πολυπλοκότητα Συγχωνευτική Ταξινόμηση

Θεωρήµατα Ιεραρχίας Ειδικά Θέµατα Υπολογισµού και Πολυπλοκότητας, Μάθηµα Βασικής Επιλογής Εαρινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων

Transcript:

ΟΝΟΜΑΤΕΠΩΝΥΜΟ: ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ AM: Δοµές Δεδοµένων Πτυχιακή Εξεταστική Ιούλιος 2014 Διδάσκων : Ευάγγελος Μαρκάκης 09.07.2014 ΥΠΟΓΡΑΦΗ ΕΠΟΠΤΗ: Διάρκεια εξέτασης : 2 ώρες και 30 λεπτά Απαντήστε σε όλα τα θέµατα Θέµα 1 2 3 4 5 6 Σύνολο: Βαθµός 1

ΘΕΜΑ 1 (12 µονάδες) Απαντήστε στις παρακάτω ερωτήσεις. Δεν χρειάζεται να δικαιολογήσετε την απάντησή σας. Απλώς κυκλώστε τις σωστές απαντήσεις (ενδέχεται να υπάρχει παραπάνω από µία σωστή απάντηση ή να µην υπάρχει καµία σωστή απάντηση). Δεν υπάρχει αρνητική βαθµολόγηση, για να πάρετε όµως όλες τις µονάδες πρέπει να κυκλώσετε όλες τις σωστές απαντήσεις. Όπου εµφανίζονται λογάριθµοι παρακάτω χωρίς να αναγράφεται ρητά η βάση τους, εννοείται ότι είναι το 2. 1. 8n 5 8n 3 + 30n 2 100n = a. O(n 2 ) b. O(n 5 ) c. O(n 8 ) d. O(n!) 2. Οι µέθοδοι ταξινόµησης Quicksort και Insertionsort έχουν a. τις ίδιες απαιτήσεις µνήµης b. την ίδια πολυπλοκότητα χειρότερης περίπτωσης c. την ίδια πολυπλοκότητα µέσης περίπτωσης 3. Σε ένα Β-δέντρο µε παράµετρο Μ, όπου Μ=Ο(1), και µε n αντικείµενα, ο χρόνος αναζήτησης στη χειρότερη περίπτωση είναι a. Ο(logn) b. O((log Μ n) 5 ) c. O(log 4 (log Μ n)) d. O(sqrt(logn)) 4. Το ύψος ενός δέντρου δυαδικής αναζήτησης µε n κόµβους, είναι πάντα a. τουλάχιστον logn 2 b. τουλάχιστον logn + 2 c. το πολύ n-2 d. το πολύ n+2 5. Η συνάρτηση n logn είναι a. O(n!) b. O(n 10 ) c. O(n n ) d. O(logn) 6. Έστω η αναδροµική σχέση f(n) = f(n-1) + n, για n 2, και f(1) = 1. Τότε f(n) = a. O(nlogn) b. O(n) c. O(n 2 ) d. O(n(logn) 2 ) Απαντήσεις: 1. b, c, d 2

2. a, b 3. a, b 4. a, d 5. a, c 6. c ΘΕΜΑ 2 (12 µονάδες) Δίνεται ο ακόλουθος ορισµός των κόµβων µίας απλά συνδεδεµένης λίστας. Κάθε κόµβος περιέχει ένα ακέραιο κλειδί key και ένα δείκτη next προς κάποιον άλλο κόµβο (ή είναι null). class Node{ int key; Node next; Node(int x){ key = x; next = null; } } Να γράψετε σε Java τη µέθοδο Node insert(node h, int x) η οποία υλοποιεί την εισαγωγή ενός κόµβου µε κλειδί x στην ταξινοµηµένη λίστα µονής σύνδεσης µε κεφαλή h. Η λίστα είναι ταξινοµηµένη σε αύξουσα σειρά και πρέπει να διατηρείται ταξινοµηµένη µετά την εισαγωγή. Αν το κλειδί υπάρχει ήδη στη λίστα, δεν γίνεται εισαγωγή και η µέθοδος επιστρέφει null, αλλιώς επιστρέφει τον κόµβο που εισήγαγε. Η λίστα δεν έχει κόµβους φρουρούς και τερµατίζεται µε null. Υπάρχουν πάρα πολλοί τρόποι για να υλοποιηθεί µια τέτοια µέθοδος. Ενδεικτικά: Node insert(node h, int x) { if (h==null) return new Node(x); //µην ξεχνάτε τον έλεγχο αυτό!! if (x==h.key) return null; if (x<h.key) { //εισαγωγή στην αρχή, την αντιµετωπίζουµε χωριστά Node t = new Node(x); t.next = h; h=t; return h; } //αν φτάσουµε εδώ η εισαγωγή πρέπει να γίνει µετά την κεφαλή Node t = h; while (t.next!=null) { if (x==t.next.key) return null; //αν υπάρχει επιστρέφει null if (x < t.next.key) //βρήκαµε πού πρέπει να µπει { Node s = new Node(x); s.next = t.next; t.next = s; return s; } else t = t.next; } // end of while Node s = new Node(x); //διαφορετικά, εισαγωγή στο τέλος t.next = s; return s; } 3

ΘΕΜΑ 3 (15 µονάδες) Έστω ότι έχουµε ένα σωρό που υποστηρίζει τις βασικές λειτουργίες insert και getmax, όπως τις είδαµε στο µάθηµα. Ο σωρός αρχικά έχει την ακόλουθη µορφή (το στοιχείο στη θέση 0 του πίνακα δεν χρησιµοποιείται, για αυτό και το στοιχείο 20 είναι στη θέση 1): 20 12 10 6 9 α) Σχεδιάστε την αναπαράσταση του σωρού ως πλήρες δυαδικό δέντρο. β) Έστω ότι ξεκινώντας από το σωρό του ερωτήµατος (α), εισάγουµε διαδοχικά τα στοιχεία 25, 22, 28, σύµφωνα µε τη µέθοδο insert, η οποία όπως έχουµε δει, αρχικά εισάγει ένα στοιχείο στο τέλος και στη συνέχεια καλεί την µέθοδο της ανάδυσης (swim) για να αποκαταστήσει την ιδιότητα του σωρού. Να σχεδιάσετε τον πίνακα και το αντίστοιχο πλήρες δυαδικό δέντρο που προκύπτει για τον σωρό, όταν ολοκληρώνεται κάθε κλήση της insert. 4

γ) Εκτελέστε µία αφαίρεση µεγίστου (getmax) στο σωρό που έχει προκύψει από το ερώτηµα (β). Δείξτε όλες τις αλλαγές που γίνονται (µετακινήσεις στοιχείων) µέχρι να ολοκληρωθεί η κλήση της getmax. 5

ΘΕΜΑ 4 (12 µονάδες) (α) [8 µονάδες] Έστω ότι εφαρµόζετε κατακερµατισµό µε γραµµική διερεύνηση σε 6,000 αντικείµενα, και έχετε χρησιµοποιήσει πίνακα µεγέθους 12,000. Έστω ότι για τον ίδιο αριθµό αντικειµένων θέλετε να έχετε και ένα σύστηµα που χρησιµοποιεί χωριστή αλυσίδωση και έχει τον ίδιο µέσο όρο διερευνήσεων για ανεπιτυχείς αναζητήσεις µε το προηγούµενο. Ποιο θα πρέπει να είναι το µέγεθος του πίνακα στη χωριστή αλυσίδωση; Για ανεπιτυχείς αναζητήσεις, το µέσο πλήθος διερευνήσεων στη γραµµική διερεύνηση είναι (1 + 1/(1-α) 2 )/2, όπου α ο συντελεστής φορτίου. (β) [4 µονάδες] Να συγκρίνετε το µέσο πλήθος διερευνήσεων για επιτυχείς αναζητήσεις στα 2 παραπάνω συστήµατα. Για επιτυχείς αναζητήσεις, το µέσο πλήθος διερευνήσεων είναι (1 + 1/(1- α))/2, στη γραµµική διερεύνηση. (α) Έχουµε Ν = 6000. Για το σύστηµα της γραµµ. διερεύνησης έχουµε ότι α γδ = ½. Αυτό σηµαίνει ότι µε βάση τον τύπο, ο αριθµός διερευνήσεων για ανεπιτυχείς αναζητήσεις στο σύστηµα γραµµ. διερεύνησης είναι (1 + 1/(1-1/2) 2 )/2 = 5/2. Για να έχουµε τώρα ένα ισοδύναµο σύστηµα χωριστής αλυσίδωσης, ως προς τις διερευνήσεις για ανεπιτυχείς αναζητήσεις, έστω Μ χα το µέγεθος του πίνακα που θα χρησιµοποιήσουµε στο σύστηµα αυτό. Ο µέσος όρος διερευνήσεων για ανεπιτυχείς αναζητήσεις στη χωριστή αλυσίδωση είναι Ν/Μ χα. Άρα πρέπει να ισχύει ότι Ν/Μ χα = 5/2. Από αυτή τη σχέση προκύπτει ότι Μ χα = 2400. Άρα το µέγεθος του πίνακα πρέπει να είναι 2400. (β) Ο αριθµός διερευνήσεων για επιτυχείς αναζητήσεις στη χωριστή αλυσίδωση είναι Ν/(2Μ χα ), καθώς κατά µέσο όρο στις επιτυχείς αναζητήσεις, µέχρι τη µέση της λίστας έχουµε βρει το κλειδί που ψάχνουµε. Άρα στη χωριστή αλυσίδωση είναι 5/4. Για το σύστηµα γραµµικής διερεύνησης, εφαρµόζοντας τον τύπο παίρνουµε (1 + 1/(1-1/2))/2 = 3/2. Άρα µε βάση το κριτήριο του αριθµού διερευνήσεων για επιτυχείς αναζητήσεις, η χωριστή αλυσίδωση είναι καλύτερη. ΘΕΜΑ 5 (17 µονάδες) (α) [5 µονάδες] Θεωρήστε ένα ισορροπηµένο δέντρο 2-3-4 µε n κλειδιά (ισορροπηµένο σηµαίνει ότι όλοι οι σύνδεσµοι ισαπέχουν από τη ρίζα). Έστω ότι το µετατρέπετε στην ισοδύναµη αναπαράσταση σε δέντρο κόκκινου-µαύρου. Πόσο αυξάνεται το ύψος του δέντρου στη χειρότερη περίπτωση κατά τη µετατροπή αυτή σε σχέση µε το αρχικό δέντρο 2-3-4; Περιγράψτε από πού προέρχεται η αύξηση αυτή στο ύψος του δέντρου. Μην χρησιµοποιήσετε κοµµάτια κώδικα για να απαντήσετε. Περιγράψτε απλά ποια είναι τα βήµατα που µπορεί να προκαλέσουν την αύξηση αυτή, και τι συνεπάγεται αυτό για το ύψος του τελικού δέντρου κόκκινου-µαύρου στη χειρότερη περίπτωση. 6

Απ: Στη χειρότερη περίπτωση το ύψος του δέντρου διπλασιάζεται. Η αύξηση του ύψους προκαλείται από τη µετατροπή των 3-κόµβων και 4-κόµβων σε απλούς κόµβους. Συγκεκριµένα, έχουµε δει ότι η µετατροπή από 2-3-4 σε κόκκινο-µαύρο έχει ως αποτέλεσµα την αντικατάσταση ενός 3-κόµβου ή 4-κόµβου από υποδέντρα µε 2 επίπεδα. Συνεπώς το ύψος µπορεί να αυξηθεί κατά 1 για κάθε 3-κόµβο ή 4-κόµβο. Στη χειρότερη περιπτωση λοιπόν, αν έχουµε 3-κόµβους ή 4- κόµβους σε κάθε επίπεδο του δέντρου, το ύψος µπορεί µέχρι και να διπλασιαστεί. (β) [8 µονάδες] Διατάξτε τις ακόλουθες συναρτήσεις µε βάση τον αυξητικό τους χαρακτήρα, δηλαδή βρείτε µια διάταξη f 1,, f 8 των οκτώ συναρτήσεων παρακάτω, η οποία να ικανοποιεί τις σχέσεις f 1 = O(f 2 ), f 2 = O(f 3 ),, κ.ο.κ. (η λύση µπορεί να µην είναι µοναδική, εσείς απλά γράψτε µία διάταξη που να ικανοποιεί τις σχέσεις αυτές). Σε όσους λογαρίθµους παρακάτω δεν εµφανίζεται η βάση τους, θεωρήστε πως είναι ίση µε 2. n 3 n 1/4 log(n 4 ) n 3 logn n n log 4 (n 4 ) 4 nlogn n 2 sqrt(n) Απ: 1. log(n 4 ) ή log 4 (n 4 ) 2. log 4 (n 4 ) ή log(n 4 ) 3. n 1/4 4. n 2 sqrt(n) 5. n 3 6. n 3 logn 7. n n 8. 4 nlogn 7

(γ) [4 µονάδες] Γιατί στα Β-δέντρα χρησιµοποιούµε κόµβους που περιέχουν σχετικά µεγάλο αριθµό κλειδιών; Απ: Γιατί τα Β-δεντρα τα χρησιµοποιούµε συνήθως για εξωτερική αναζήτηση, όπου το κύριο κόστος είναι το πόσες φορές διαβάζουµε/γράφουµε στο σκληρό δίσκο ή στη βάση δεδοµένων. Προσπαθούµε λοιπόν κάθε κόµβος να περιέχει περίπου όσα κλειδιά χωράνε σε µια σελίδα/µπλοκ του δίσκου, (η ανάγνωση από το δίσκο ούτως ή άλλως ένα µπλοκ θα επιστρέψει και όχι µεµονωµένα κλειδιά) και να ελαχιστοποιούµε έτσι το πόσες φορές θα διαβάσουµε από το δίσκο. 8

ΘΕΜΑ 6 (12 µονάδες) Έστω το εξής δέντρο 2-3-4: (α) Σχεδιάστε ένα ισοδύναµο δέντρο κόκκινου-µαύρου. (β) Να εισάγετε µε ανοδική εισαγωγή το κλειδί 45. Σχεδιάστε το νέο δέντρο 2-3-4 που θα προκύψει καθώς και το ισοδύναµο δέντρο κόκκινου-µαύρου. 9

(γ) Στο δέντρο που προέκυψε από το ερώτηµα (β) κάντε ανοδική εισαγωγή του κλειδιού 11. Ξανασχεδιάστε το νέο δέντρο 2-3-4 και το ισοδύναµο κόκκινου-µαύρου. 10