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

Σχετικά έγγραφα
Δομές Δεδομένων. Δημήτρης Μιχαήλ. Υλοποίηση Δυαδικού Σωρού σε γλώσσα Java. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Κεφάλαιο 2. Η δομή δεδομένων Σωρός και η Ταξινόμηση Σωρού (The Heap data structure and Heapsort) Έκδοση 1.3, 14/11/2014

ταξινόμηση σωρού Παύλος Εφραιμίδης Δομές Δεδομένων και

Πελάτες φθάνουν στο ταμείο μιας τράπεζας Eνα μόνο ταμείο είναι ανοικτό Κάθε πελάτης παρουσιάζεται με ένα νούμερο - αριθμός προτεραιότητας Όσο ο

Ουρά Προτεραιότητας: Heap

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

Ουρά Προτεραιότητας: Heap

Δοµές Δεδοµένων. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 2

Ουρά Προτεραιότητας: Heap

13/5/2015 ΟΥΡΕΣ ΠΡΟΤΕΡΑΙΟΤΗΤΑΣ. Δομές Δεδομένων. Ουρές Προτεραιότητας

Ουρά Προτεραιότητας: Heap

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

ΟΥΡΕΣ ΠΡΟΤΕΡΑΙΟΤΗΤΑΣ

σωροί ταξινόμηση σωρού οόροςheap σωρός (heap) συστοιχία Α για έναν σωρό μια δομή δεδομένων που πχ.

Ουρά Προτεραιότητας (priority queue)

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

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

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

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

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

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

Σχεδιαση Αλγοριθμων -Τμημα Πληροφορικης ΑΠΘ - Κεφαλαιο 9ο

Ουρές προτεραιότητας

Ουρά Προτεραιότητας (priority queue)

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

Δομές Δεδομένων Ενότητα 4

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

Heapsort Using Multiple Heaps

Εισαγωγή στους Αλγορίθμους Ενότητα 3η

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

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 7

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 2

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

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

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

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

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

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

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

Εισαγωγή στους Αλγορίθμους

Για παράδειγμα η αρχική και η τελική κατάσταση αναπαριστώνται ως εξής: (ένα λίτρο)

Δυαδικά Δέντρα Αναζήτησης (Binary Search Trees) Ορισμός : Ένα δυαδικό δέντρο αναζήτησης t είναι ένα δυαδικό δέντρο, το οποίο είτε είναι κενό είτε:

Μπαλτάς Αλέξανδρος 21 Απριλίου 2015

Ουρές Προτεραιότητας: Υπενθύμιση. Σωροί / Αναδρομή / Ταξινόμηση. Υλοποίηση Σωρού. Σωρός (Εισαγωγή) Ορέστης Τελέλης

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

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

Δομές Δεδομένων (Εργ.) Ακ. Έτος Διδάσκων: Ευάγγελος Σπύρου. Εργαστήριο 10 Δυαδικά Δένδρα Αναζήτησης

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

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

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

ΑΛΓΟΡΙΘΜΟΙ ΜΕ C. ΝΙΚΟΛΑΟΣ ΣΑΜΑΡΑΣ Αναπληρωτής Καθηγητής. CMOR Lab. Computational Methodologies and Operations Research

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

1.1 Αλγόριθμοι Ένα ενδεικτικό πρόβλημα: συνδετικότητα Αλγόριθμοι ένωσης-εύρεσης Προοπτική Σύνοψη θεμάτων 46

Εκτενείς Δομές Δεδομένων

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 8: ΧΡΗΣΗ ΔΟΜΩΝ ΔΕΝΤΡΟΥ ΚΑΙ ΣΩΡΟΥ ΓΙΑ ΕΠΙΛΥΣΗ ΠΡΟΒΛΗΜΑΤΟΣ ΤΑΞΙΝΟΜΗΣΗΣ ΑΛΓΟΡΙΘΜΟΣ HEAPSORT

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

Αλγόριθμοι Eλάχιστα μονοπάτια

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

Περιεχόμενα. Περιεχόμενα

ΕΠΛ 231 οµές εδοµένων και Αλγόριθµοι Άννα Φιλίππου,

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

έντρα ιδάσκοντες:. Φωτάκης,. Σούλιου Επιμέλεια διαφανειών:. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο

ΟιβασικέςπράξειςπουορίζουντονΑΤΔ δυαδικό δέντρο αναζήτησης είναι οι ακόλουθες:

Ν. Μ. Μισυρλής. Τµήµα Πληροφορικής και Τηλεπικοινωνιών, Πανεπιστήµιο Αθηνών. Καθηγητής: Ν. Μ. Μισυρλής 29 Μαΐου / 18

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

Οι βασικές λειτουργίες (ή πράξεις) που γίνονται σε μια δομή δεδομένων είναι:

ΑΛΓΟΡΙΘΜΟΙ. Ενότητα 9: Άπληστοι Αλγόριθμοι. Ιωάννης Μανωλόπουλος, Καθηγητής Αναστάσιος Γούναρης, Επίκουρος Καθηγητής Τμήμα Πληροφορικής ΑΠΘ

ιδάσκοντες: Φ. Αφράτη,. Φωτάκης,. Σούλιου Επιμέλεια διαφανειών:. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

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

Διάλεξη 18: B-Δένδρα

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο Κάθε δομή μπορεί να χρησιμοποιηθεί σε οποιοδήποτε πρόβλημα ή εφαρμογή

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

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

Εισαγωγή ενός νέου στοιχείου. Επιλογή i-οστoύ στοιχείου : Εύρεση στοιχείου με το i-οστό μικρότερο κλειδί

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

Σωροί. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Ουρές Προτεραιότητας Σωροί υλοποίηση και πράξεις Ο αλγόριθμος ταξινόμησης HeapSort

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

1η Σειρά Γραπτών Ασκήσεων

Κεφάλαιο 14 Προηγμένες Ουρές Προτεραιότητας

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

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

7ο ΕΡΓΑΣΤΗΡΙΟ AAAABBBBAAAAABBBBBBCCCCCCCCCCCCCCBBABAAAABBBBBBCCCCD

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

Δημιουργία Δυαδικών Δέντρων Αναζήτησης

Δομές Δεδομένων. Ενότητα 10: Πλήρη Δυαδικά Δέντρα, Μέγιστα/Ελάχιστα Δέντρα & Εισαγωγή στο Σωρό- Ο ΑΤΔ Μέγιστος Σωρός. Καθηγήτρια Μαρία Σατρατζέμη

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Βασικές Ιδιότητες και Διάσχιση Κεφάλαιο 5 ( και ) Ε. Μαρκάκης Επίκουρος Καθηγητής

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 5

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

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

Δομές Δεδομένων. Ενότητα 13: B-Δέντρα/AVL-Δέντρα. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής. Δομές Δεδομένων

Αλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα)

Δυαδικά Δένδρα Αναζήτησης, Δένδρα AVL

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

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

ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ (ΠΑΤΡΑ) ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ

Στοιχεία Θεωρίας Γραφηµάτων (4) - έντρα

Υπερπροσαρμογή (Overfitting) (1)

Οι βασικές πράξεις που ορίζουν τον ΑΤ δυαδικό δέντρο αναζήτησης είναι οι ακόλουθες:

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές Δεδομένων. Ιωάννης Γ. Τόλλης Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης

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

Transcript:

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

Ουρά Προτεραιότητας Το πρόβλημα Έχουμε αντικείμενα με κλειδιά και θέλουμε ανά πάσα στιγμή να επεξεργαζόμαστε το αντικείμενο με το μεγαλύτερο κλειδί. Στη συνέχεια θέλουμε να ανανεώσουμε την συλλογή αντικειμένων και να επεξεργαστούμε εκ νέου το αντικείμενο με το μεγαλύτερο κλειδί. Χαροκόπειο Πανεπιστήμιο 2/19

Ουρά Προτεραιότητας Ορισμός Μία ουρά προτεραιότητας (priority queue) είναι μία δομή δεδομένων στοιχείων με κλειδιά η οποία υποστηρίζει δύο βασικές λειτουργίες: εισαγωγή ενός νέου στοιχείου διαγραφή του στοιχείου με το μεγαλύτερο κλειδί Χαροκόπειο Πανεπιστήμιο 3/19

Παραδείγματα Εφαρμογών σύστημα προσομοίωσης, όπου τα κλειδιά αντιστοιχούν σε χρόνους συμβάντων χρονοπρογραμματισμό εργασιών όπου τα κλειδιά είναι προτεραιότητες ταξινόμηση αριθμών (θα αναπτύξουμε αυτό το θέμα σε λεπτομέρεια αργότερα) και άλλα που θα δούμε σε άλλα μαθήματα αλγόριθμος A αλγόριθμος Dijkstra κωδικοποίηση Huffman αλγόριθμος Prim - εύρεση ελάχιστων γεννητικών δέντρων (MST) Χαροκόπειο Πανεπιστήμιο /19

Διάφορες Λειτουργίες Μία ουρά προτεραιότητας υποστηρίζει συνήθως: κατασκευή ουράς προτεραιότητας από n δεδομένα στοιχεία εισαγωγή νέου στοιχείου διαγραφή μέγιστου αλλαγή προτεραιότητας στοιχείου διαγραφή στοιχείου ένωση δύο ουρών προτεραιότητας Αυτές οι λειτουργίες μπορούν να λειτουργήσουν και ως ΑΤΔ. Χαροκόπειο Πανεπιστήμιο 5/19

Στοιχειώδης Υλοποίηση Με Πίνακα εισαγωγή νέου στοιχείου: στο τέλος του πίνακα διαγραφή μεγίστου: γραμμική αναζήτηση μέγιστου στον πίνακα κ.τ.λ Άλλες απλές υλοποιήσεις είναι με διατεταγμένο πίνακα (πίνακα όπου τα στοιχεία είναι ταξινομημένα με βάση τα κλειδιά) με λίστες με διατεταγμένες λίστες Χαροκόπειο Πανεπιστήμιο 6/19

Χρόνοι Υλοποιήσεων εισαγωγή διαγραφή διαγραφή εύρεση αλλαγή ένωση μέγιστου μέγιστου προτερ. πίνακας 1 n 1 n 1 n διατετ. n 1 n 1 n n πίνακας λίστα 1 n 1 n 1 1 διατετ. λίστα n 1 1 1 n n Χαροκόπειο Πανεπιστήμιο 7/19

Δυαδικός Σωρός Ένα δέντρο είναι διατεταγμένο σε σωρό (heap-ordered) αν το κλειδί κάθε κόμβου είναι μεγαλύτερο ή ίσο από τα κλειδιά όλων των παιδιών του. Χαροκόπειο Πανεπιστήμιο 8/19

Δυαδικός Σωρός Ένα δέντρο είναι διατεταγμένο σε σωρό (heap-ordered) αν το κλειδί κάθε κόμβου είναι μεγαλύτερο ή ίσο από τα κλειδιά όλων των παιδιών του. Δυαδικός Σωρός (binary heap) O σωρός είναι ένα σύνολο κόμβων με κλειδιά τοποθετημένα σε ένα πλήρες δυαδικό δέντρο το οποίο είναι διατεταγμένο σε σωρό και αναπαριστάται ως πίνακας. Χαροκόπειο Πανεπιστήμιο 8/19

Πλήρες Δυαδικό Δέντρο Ορισμός Ένα δυαδικό δέντρο όπου όλα τα επίπεδα, εκτός ίσως του τελευταίου, είναι συμπληρωμένα, το οποίο συμπληρώνεται από τα αριστερά προς τα δεξιά. 1 2 3 5 6 7 8 9 Χαροκόπειο Πανεπιστήμιο 9/19

Πλήρες Δυαδικό Δέντρο σε Πίνακα 1 2 3 parent(i) = i/2 left child(i) = 2i right child(i) = 2i + 1 5 6 7 8 9 1 2 3 5 6 7 8 9 Χαροκόπειο Πανεπιστήμιο 10/19

Ύψος Πλήρους Δυαδικού Δέντρου με n κόμβους 1 2 3 Επειδή κάθε φορά οι κόμβοι του δέντρου μοιράζονται περίπου στα δύο, ένα τέτοιο δέντρο έχει περίπου log n επίπεδα. Σε αυτή την ιδιότητα βασίζονται οι δυαδικοί σωροί. 5 6 7 8 9 Χαροκόπειο Πανεπιστήμιο 11/19

Παράδειγμα Δυαδικού Σωρού 15 13 12 6 12 7 5 Χαροκόπειο Πανεπιστήμιο 12/19

Εισαγωγή σε Δυαδικό Σωρό κάτω-πάνω τακτοποίηση δυαδικού σωρού 15 13 12 6 12 7 5 Χαροκόπειο Πανεπιστήμιο 13/19

Εισαγωγή σε Δυαδικό Σωρό κάτω-πάνω τακτοποίηση δυαδικού σωρού 15 13 12 6 12 7 5 1 Χαροκόπειο Πανεπιστήμιο 13/19

Εισαγωγή σε Δυαδικό Σωρό κάτω-πάνω τακτοποίηση δυαδικού σωρού 15 13 12 6 1 7 5 12 Χαροκόπειο Πανεπιστήμιο 13/19

Εισαγωγή σε Δυαδικό Σωρό κάτω-πάνω τακτοποίηση δυαδικού σωρού 15 1 12 6 13 7 5 12 Χαροκόπειο Πανεπιστήμιο 13/19

Εισαγωγή σε Δυαδικό Σωρό κάτω-πάνω τακτοποίηση δυαδικού σωρού 15 1 12 6 13 7 5 12 Χαροκόπειο Πανεπιστήμιο 13/19

Εισαγωγή σε Δυαδικό Σωρό κάτω-πάνω τακτοποίηση δυαδικού σωρού 15 1 12 6 13 7 5 12 18 Χαροκόπειο Πανεπιστήμιο 13/19

Εισαγωγή σε Δυαδικό Σωρό κάτω-πάνω τακτοποίηση δυαδικού σωρού 15 1 12 6 18 7 5 12 13 Χαροκόπειο Πανεπιστήμιο 13/19

Εισαγωγή σε Δυαδικό Σωρό κάτω-πάνω τακτοποίηση δυαδικού σωρού 15 18 12 6 1 7 5 12 13 Χαροκόπειο Πανεπιστήμιο 13/19

Εισαγωγή σε Δυαδικό Σωρό κάτω-πάνω τακτοποίηση δυαδικού σωρού 18 15 12 6 1 7 5 12 13 Χαροκόπειο Πανεπιστήμιο 13/19

Εισαγωγή σε Δυαδικό Σωρό κάτω-πάνω τακτοποίηση δυαδικού σωρού 18 15 12 6 1 7 5 12 13 Χαροκόπειο Πανεπιστήμιο 13/19

Εισαγωγή σε Δυαδικό Σωρό Χρόνος 18 15 12 Ο χρόνος εκτέλεσης είναι ανάλογος του μήκους του μέγιστου μονοπατιού από ένα φύλλο μέχρι την ρίζα, δηλαδή O(log n). 6 1 7 5 12 13 Χαροκόπειο Πανεπιστήμιο 1/19

Αφαίρεση Μέγιστου από Δυαδικό Σωρό πάνω-κάτω τακτοποίηση δυαδικού σωρού 18 15 12 6 1 7 5 12 13 Χαροκόπειο Πανεπιστήμιο 15/19

Αφαίρεση Μέγιστου από Δυαδικό Σωρό πάνω-κάτω τακτοποίηση δυαδικού σωρού 18 15 12 6 1 7 5 12 13 Χαροκόπειο Πανεπιστήμιο 15/19

Αφαίρεση Μέγιστου από Δυαδικό Σωρό πάνω-κάτω τακτοποίηση δυαδικού σωρού 18 15 12 6 1 7 5 12 13 Χαροκόπειο Πανεπιστήμιο 15/19

Αφαίρεση Μέγιστου από Δυαδικό Σωρό πάνω-κάτω τακτοποίηση δυαδικού σωρού 18 15 12 6 1 7 5 12 13 Χαροκόπειο Πανεπιστήμιο 15/19

Αφαίρεση Μέγιστου από Δυαδικό Σωρό πάνω-κάτω τακτοποίηση δυαδικού σωρού 13 15 12 6 1 7 5 12 Χαροκόπειο Πανεπιστήμιο 15/19

Αφαίρεση Μέγιστου από Δυαδικό Σωρό πάνω-κάτω τακτοποίηση δυαδικού σωρού 15 13 12 6 1 7 5 12 Χαροκόπειο Πανεπιστήμιο 15/19

Αφαίρεση Μέγιστου από Δυαδικό Σωρό πάνω-κάτω τακτοποίηση δυαδικού σωρού 15 1 12 6 13 7 5 12 Χαροκόπειο Πανεπιστήμιο 15/19

Αφαίρεση Μέγιστου από Δυαδικό Σωρό πάνω-κάτω τακτοποίηση δυαδικού σωρού 15 1 12 6 13 7 5 12 Χαροκόπειο Πανεπιστήμιο 15/19

Πάνω-κάτω Τακτοποίηση Δυαδικού Σωρού λάθος προτεραιότητα πάνω κάτω τακτοποίηση σωστός σωρός σωστός σωρός σωστός σωρός Άμα τα δύο υποδέντρα ενός κόμβου είναι σωροί, τότε με μία εκτέλεση της πάνω-κάτω τακτοποίησης σωρού από αυτόν τον κόμβο παίρνουμε ένα σωρό. Χαροκόπειο Πανεπιστήμιο 16/19

Κατασκευή Δυαδικού Σωρού από Πίνακα heapify Έστω ένας πίνακας με n στοιχεία τον οποίο θέλουμε να μετατρέψουμε σε σωρό. Όλα τα φύλλα του δέντρου είναι σωροί. Μπορούμε να φτιάχνουμε και το υπόλοιπο δέντρο με διαδοχικές πάνω-κάτω τακτοποιήσεις. Ξεκινάμε από την μέση του πίνακα και εκτελούμε πάνω-κάτω τακτοποιήσεις για ένα ένα τα στοιχεία μέχρι να φτάσουμε στην ρίζα (το πρώτο στοιχείο του πίνακα). Χαροκόπειο Πανεπιστήμιο 17/19

Κατασκευή Δυαδικού Σωρού από Πίνακα heapify Έστω ένας πίνακας με n στοιχεία τον οποίο θέλουμε να μετατρέψουμε σε σωρό. Όλα τα φύλλα του δέντρου είναι σωροί. Μπορούμε να φτιάχνουμε και το υπόλοιπο δέντρο με διαδοχικές πάνω-κάτω τακτοποιήσεις. Ξεκινάμε από την μέση του πίνακα και εκτελούμε πάνω-κάτω τακτοποιήσεις για ένα ένα τα στοιχεία μέχρι να φτάσουμε στην ρίζα (το πρώτο στοιχείο του πίνακα). Χαροκόπειο Πανεπιστήμιο 17/19

Κατασκευή Δυαδικού Σωρού από Πίνακα heapify Έστω ένας πίνακας με n στοιχεία τον οποίο θέλουμε να μετατρέψουμε σε σωρό. Όλα τα φύλλα του δέντρου είναι σωροί. Μπορούμε να φτιάχνουμε και το υπόλοιπο δέντρο με διαδοχικές πάνω-κάτω τακτοποιήσεις. Ξεκινάμε από την μέση του πίνακα και εκτελούμε πάνω-κάτω τακτοποιήσεις για ένα ένα τα στοιχεία μέχρι να φτάσουμε στην ρίζα (το πρώτο στοιχείο του πίνακα). Χαροκόπειο Πανεπιστήμιο 17/19

Κατασκευή Δυαδικού Σωρού από Πίνακα heapify Έστω ένας πίνακας με n στοιχεία τον οποίο θέλουμε να μετατρέψουμε σε σωρό. Όλα τα φύλλα του δέντρου είναι σωροί. Μπορούμε να φτιάχνουμε και το υπόλοιπο δέντρο με διαδοχικές πάνω-κάτω τακτοποιήσεις. Ξεκινάμε από την μέση του πίνακα και εκτελούμε πάνω-κάτω τακτοποιήσεις για ένα ένα τα στοιχεία μέχρι να φτάσουμε στην ρίζα (το πρώτο στοιχείο του πίνακα). Χαροκόπειο Πανεπιστήμιο 17/19

Κατασκευή Δυαδικού Σωρού από Πίνακα heapify Έστω ένας πίνακας με n στοιχεία τον οποίο θέλουμε να μετατρέψουμε σε σωρό. Όλα τα φύλλα του δέντρου είναι σωροί. Μπορούμε να φτιάχνουμε και το υπόλοιπο δέντρο με διαδοχικές πάνω-κάτω τακτοποιήσεις. Ξεκινάμε από την μέση του πίνακα και εκτελούμε πάνω-κάτω τακτοποιήσεις για ένα ένα τα στοιχεία μέχρι να φτάσουμε στην ρίζα (το πρώτο στοιχείο του πίνακα). Χαροκόπειο Πανεπιστήμιο 17/19

Κατασκευή Δυαδικού Σωρού από Πίνακα heapify Έστω ένας πίνακας με n στοιχεία τον οποίο θέλουμε να μετατρέψουμε σε σωρό. Όλα τα φύλλα του δέντρου είναι σωροί. Μπορούμε να φτιάχνουμε και το υπόλοιπο δέντρο με διαδοχικές πάνω-κάτω τακτοποιήσεις. Ξεκινάμε από την μέση του πίνακα και εκτελούμε πάνω-κάτω τακτοποιήσεις για ένα ένα τα στοιχεία μέχρι να φτάσουμε στην ρίζα (το πρώτο στοιχείο του πίνακα). Χαροκόπειο Πανεπιστήμιο 17/19

Κατασκευή Δυαδικού Σωρού από Πίνακα heapify Έστω ένας πίνακας με n στοιχεία τον οποίο θέλουμε να μετατρέψουμε σε σωρό. Όλα τα φύλλα του δέντρου είναι σωροί. Μπορούμε να φτιάχνουμε και το υπόλοιπο δέντρο με διαδοχικές πάνω-κάτω τακτοποιήσεις. Ξεκινάμε από την μέση του πίνακα και εκτελούμε πάνω-κάτω τακτοποιήσεις για ένα ένα τα στοιχεία μέχρι να φτάσουμε στην ρίζα (το πρώτο στοιχείο του πίνακα). Χαροκόπειο Πανεπιστήμιο 17/19

Κατασκευή Δυαδικού Σωρού από Πίνακα heapify Έστω ένας πίνακας με n στοιχεία τον οποίο θέλουμε να μετατρέψουμε σε σωρό. Όλα τα φύλλα του δέντρου είναι σωροί. Μπορούμε να φτιάχνουμε και το υπόλοιπο δέντρο με διαδοχικές πάνω-κάτω τακτοποιήσεις. Ξεκινάμε από την μέση του πίνακα και εκτελούμε πάνω-κάτω τακτοποιήσεις για ένα ένα τα στοιχεία μέχρι να φτάσουμε στην ρίζα (το πρώτο στοιχείο του πίνακα). Χαροκόπειο Πανεπιστήμιο 17/19

Κατασκευή Δυαδικού Σωρού από Πίνακα heapify Πόσο κοστίζει αυτή η διαδικασία; Ο πίνακας έχει n στοιχεία και κάνουμε πάνω-κάτω τακτοποίηση το πολύ σε k = log n επίπεδα. Κάθε επίπεδο i έχει το πολύ 2 i κόμβους Η πάνω-κάτω τακτοποίηση ξεκινώντας από ένα κόμβο στο επίπεδο i έχει το πολύ κόστος O(k i). Προσθέτοντας: O 2 i (k i) = O 2 k 0 i<k 0 i<k k i = O 2 k i 2 k j 1 j = O(n) 2 j Χαροκόπειο Πανεπιστήμιο 18/19

Ταξινόμηση με Δυαδικό Σωρό Έστω ένας πίνακας με n ακεραίους. Θέλουμε να τυπώσουμε τους ακεραίους από τον μεγαλύτερο ως τον μικρότερο με την σειρά. Αλγόριθμος φτιάξε ένα σωρό από τον πίνακα όσο ο σωρός δεν είναι άδειος βγάλε το μεγαλύτερο στοιχείο και εκτύπωσε το Ο αλγόριθμος αυτός λέγεται Heap-Sort και βάζει n αριθμούς στη σειρά σε χρόνο O(n log n). Χαροκόπειο Πανεπιστήμιο 19/19