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



Σχετικά έγγραφα
Ουρές προτεραιότητας

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ενότητα 7 Ουρές Προτεραιότητας

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

Ισοζυγισμένα υαδικά έντρα Αναζήτησης

h/2. Άρα, n 2 h/2-1 h 2log(n+1). Πως υλοποιούµε τη LookUp()? Πολυπλοκότητα?

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

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

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

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

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

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

Τεχνητή Νοημοσύνη. 2η διάλεξη ( ) Ίων Ανδρουτσόπουλος.

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

Heapsort Using Multiple Heaps

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

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

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

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

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

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

Ενότητα 7 Ουρές Προτεραιότητας

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

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

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

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

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

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

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

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

Red-black δέντρα (Κεφ. 5)

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

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

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

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

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

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

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

Red- black δέντρα Εκτενείς Δομές Δεδομένων (Κεφ. 5)

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

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

Σχεδίαση και Ανάλυση Αλγορίθμων

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά

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

ιαφάνειες παρουσίασης #4

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

Δένδρα επικάλ επικ υψης ελάχιστου στους

Θέματα Υπολογισμού στον Πολιτισμό - Δένδρα. Δένδρα

1 Το πρόβλημα της συντομότερης διαδρομής

Αν ένα πρόβλημα λύνεται από δύο ή περισσότερους αλγόριθμους, ποιος θα είναι ο καλύτερος; Με ποια κριτήρια θα τους συγκρίνουμε;

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

Επιλογές και Κριτήρια Σχεδιασμού ΑΤΔ Ανεξαρτήτως από Γλώσσα Υλοποίησης 24/4/2012

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

Όρια Αλγόριθμων Ταξινόμησης. Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη

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

Ελαφρύτατες διαδρομές

Δένδρα Αναζήτησης Πολλαπλής Διακλάδωσης

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

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

Ισορροπημένα Δένδρα. για κάθε λειτουργία; Ισορροπημένο δένδρο : Διατηρεί ύψος κάθε εισαγωγή ή διαγραφή

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

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

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

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

ΑΣΚΗΣΗ 1 Για τις ερωτήσεις 1-4 θεωρήσατε τον ακόλουθο γράφο. Ποιές από τις παρακάτω προτάσεις αληθεύουν και ποιές όχι;

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

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

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

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

Ισορροπημένα Δένδρα. για κάθε λειτουργία; Ισορροπημένο δένδρο : Διατηρεί ύψος κάθε εισαγωγή ή διαγραφή

ΚΕΦΑΛΑΙΟ 8: Αφαίρεση δεδοµένων

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

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

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

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ

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

Κεφάλαιο 5 Ανάλυση Αλγορίθμων

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

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

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

Transcript:

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

Ουρές προτεραιότητας / επεξεργασία γρήγορη «ο υπάλληλος της τράπεζας πρέπει να ξέρει να κάνει αποδοτικά τις 3 ακόλουθες διαδικασίες»: Αναζήτηση του μέγιστου στην ουρά προτεραιότητας Διαγραφή ενός στοιχείου από την ουρά Εισαγωγή ενός νέου στοιχείου στην ουρά

Ουρές προτεραιότητας (Λύση 1) Χρησιμοποίηση ενός πίνακα και ταξινόμηση κατά αύξουσα σειρά προτεραιοτήτων. ρ Ταξινόμηση σε Ο(n logn) Αναζήτηση του μέγιστου σε Ο(1) Διαγραφή σε Ο(1) Η εισαγωγή όμως?? Ο(n), n το μήκος της ουράς (άσκηση)

Ουρές προτεραιότητας (Λύση ) Διαχείριση μιας απλής ουράς, και αναζήτηση του μέγιστου κάθε φορά. Εισαγωγή: γρήγορη Αναζήτηση μέγιστου: O(n) Διαγραφή; (άσκηση)

Ουρές ρςπροτεραιότητας ρ (Λύση η 3) Μια κομψή μέθοδος Να διαχειρισθεί μια δομή μερικής διάταξης με τη βοήθεια ενός δένδρου (δομή σωρού - heap). Η ουρά n στοιχείων παριστάνεται από ένα δυαδικό δένδρο που περιέχει σε κάθε κόμβο του ένα στοιχείο

Δυαδικό Δένδρο (υπενθύμιση) Οι κόμβοι έχουν το πολύ δύο παιδιά

Δυαδικό Δένδρο πλήρες (υπενθύμιση) Όλοι οι εσωτερικοί κόμβοι έχουν δύο παιδιά

Δυαδικό όδέντρο Σχεδόν πλήρες Κάθε επίπεδο i, εκτός ίσως από το τελευταίο, περιέχει το μέγιστο αριθμό κόμβων ( i ) Τα φύλλα του τελευταίου επιπέδου είναι όλα αριστερά Όλα τα φύλλα είναι στο τελευταίο ή το προτελευταίο επίπεδο Οι εσωτερικοί κόμβοι είναι δυαδικοί (εκτός από τον δεξιότερο του προτελευταίου επιπέδου)

Δυαδικό όδέντρο Σχεδόν πλήρες / Παράδειγμα 0 1

Δυαδικό Δέντρο Σχεδόν πλήρες / Παραδείγματα ΝΑΙ ΝΑΙ ΟΧΙ

Σωρός (Heap) )/Π Παράδειγμα 16 0 14 10 1 8 10 9 3 4 7 Το δένδρο πληρεί δύο βασικές ιδιότητες: - Τιμή κάθε κόμβου τιμής παιδιών δώ - Το δέντρο είναι σχεδόν πλήρες

Δυαδικό Δέντρο Σχεδόν πλήρες / Αρίθμηση Κατά πλάτος 1 16 0 3 14 10 1 4 5 6 7 8 10 9 3 8 9 10 4 7

Δυαδικό Δέντρο Σχεδόν πλήρες / Αρίθμηση Κατά πλάτος Κάθε κόμβος έχει τον πατέρα του στη θέση i/ Το αριστερό παιδί του κόμβου i, είναι ο κόμβος i Το δεξιό παιδί του κόμβου i i+1

Υλοποίηση με πίνακα ενός σωρού Αρίθμηση κατά πλάτος «το νούμερο κάθε κόμβου του δένδρου δίνει τον δείκτη του πίνακα που περιέχει την τιμή του κόμβου» i n a[i] a[i] 3 i + 1 n a[i +1] a[i]

Υλοποίηση ενός σωρού με πίνακα / Παράδειγμα i 1 3 4 5 6 7 8 9 10 a[i] 16 14 10 8 10 9 3 4 7 16 14 10 θέση 7: *3+1 8 10 9 3 4 7

Εισαγωγή ενός νέου στοιχείου στο σωρό Αλγόριθμος - Αύξησε n - Θέσε a[n]= u (u : το νέο στοιχείο), i = n - Όσο ισχύει i a < u ΤΟΤΕ αντιμετάθεσε την τιμή του κόμβου i με αυτή του πατέρα του πήγαινε στον πατέρα i= i div και επανέλαβε μέχρις μχρςότου η συνθήκη σωρού να ικανοποιείται

Εισαγωγή ενός νέου στοιχείου στο σωρό / παράδειγμα 8 16 16 14 10 14 10 10 9 3 8 10 9 3 4 7 4 7 15 8 16 14 15 4 7 10 9 10 3 **** 8 16 15 14 4 7 10 9 10 3

Διαγραφή της ρίζας από το σωρό Η διαδικασία δ διαγραφής του 1ου στοιχείου της ουράς αφαιρεί τη ρίζα του δέντρου που παριστάνει την ουρά, δίδοντας δύο δένδρα. δ

Διαγραφή της ρίζας από το σωρό 16 15 10 8 14 9 3 4 7 10

Αλγόριθμος διαγραφής της ρίζας 1. Θέσε το δεξιότερο στοιχείο της τελευταίας γραμμής στη θέση της ρίζας. σύγκρινε την τιμή του με αυτή των παιδιών της 3. αντιμετάθεσε αυτή την τιμή με την τιμή του νικητή (μέγιστη τιμή των παιδιών) 4. επανέλαβε τη διαδικασία δ μέχρι ότου να ικανοποιείται η συνθήκη του σωρού.

Διαγραφή της ρίζας από το σωρό / Παράδειγμα 16 10 15 10 15 10 8 14 9 3 8 14 9 3 4 7 10 4 7 8 15 10 14 4 7 9 10 3 **** 8 4 14 7 10 15 9 10 3

Πολυπλοκότητα Η διαχείριση των ουρών προτεραιότητας με σωρό επιτρέπει να κάνουμε τις 3 διαδικασίες: Αναζήτηση (μέγιστου στοιχείου) Εισαγωγή (ενός στοιχείου) Διαγραφή (ενός στοιχείου) σε O(logn)

Δυαδικά Δένδρα Βάθος και ύψος των κόμβων (υπενθύμιση) Το βάθος, ενός κόμβου είναι το μήκος του μονοπατιού που τον ενώνει με τη ρίζα. ρίζα βάθος "0" τα παιδιά της βάθος "1" οι άλλοι κόμβοι βάθος ">1"

Βάθος κόμβου σε ένα δυαδικό δ όδέ δέντρο / Παράδειγμα 16 0 14 10 1 8 10 9 3 4 7

Δυαδικά Δένδρα Βάθος και ύψος των κόμβων (υπενθύμιση) Υψος ενός κόμβου: αριθμός πλευρών του μακρύτερου μονοπατιού απο τον κόμβο σε ένα φύλλο. Υψος δέντρου: το ύψος της ρίζας 16 0 14 10 1 8 10 9 3 4 7

Δυαδικά Δένδρα ύψος Σε ένα δυαδικό δένδρο με m κόμβους για το ύψος n ισχύει: log m n m 1

Δυαδικό Δένδρο (εκφυλισμένο) δένδρο εκφυλισμένο μέγιστο ύψος 1 3 ύψος n m-1 4 5 m

Δυαδικό Δένδρο πλήρες (υπενθύμιση) δένδρο πλήρες ελάχιστο ύψος n + 1 ύ ψος n-> m = 1 n+ 1 Έχουμε m < log m < n + 1 και τελικά log m n m 1

Δυαδικό όδέντρο Σχεδόν πλήρες / ύψος 1 16 0 3 14 10 1 4 5 6 7 8 10 9 3 8 9 10 4 7 Ύψος = O(logn)

Δυαδικό Δένδρο Σχέση πλήθους κόμβων και αριθμού φύλλων Δυαδικό όδένδροδ ΠΡΟΤΑΣΗ Απόδειξη: n κόμβοι φ φύλλα για φ=1 1 αληθής αριθμος φυλλων = φ n + 1 Έστω αληθής για φ < n n 1 B 1 ϕ 1 ϕ B n B = 0, B n = n 1 1 + n, B + 1 n1 + 1 ϕ1 1 + n ϕ ϕ n + 1

Δυαδικό όδένδροδ n κόμβοι Δυαδικό Δένδρο Σχέση ύψους και αριθμού φύλλων ΠΡΟΤΑΣΗ ύψος h φ φύλλα logϕ n 1 Απόδειξη: B= 0 B 1 ϕ 1 0, B, B 1 n + 1 n+ 1 ϕ lgϕ lg B ( ) 1+ logϕ log n+ 1 1 logϕ log( n 1) ϕ n + + 1+ logϕ logn + 1 log ϕ log n ύψος h

Δυαδικό Δένδρο Σχέση ύψους και αριθμού φύλλω ( + 1) log n = 1+ log n k k k < n < < k < log n < n + 1 k + 1 k + 1 1 k + 1 ( n + 1) k + 1 ( n + 1 ) log n = k + 1 log( n + 1) = 1+ log n

Πλήθος κόμβων ενός πλήρους δυαδικού δέντρου ύψους n (άσκηση) a n = πλήθος εσωτερικών κόμβων + πλήθος φύλλων = a n =1 n-1 +, n 1, a 0 ύψος n-1 συνέχεια

Πλήθος κόμβων ενός πλήρους δυαδικού δέντρου ύψους n a n = a n-1 + n, n >= 1 a n = a n-1 + n a n-1 n-1 = a n- + a n- = a n-3 + n- a = a 1 + a 1 = a 0 + 1 n a n = a 0 +Σ i, n 1 i=1 a n =1+( n+1 )/(-1) a = n+1 n - 1

Πλήρες δυαδικό δέντρο ύψους n a ρ μ ς μβ, n n n-1 : αριθμός κόμβων, τότε a n = a n 1 + 1 (n 1, a 0 =1) (= δύο υπό-δέντρα ύψους n-1 και μια ρίζα) B 1 B n ϕ 1 ϕ a n-1 a n-1

Αριθμός κόμβων πλήρους δυαδικού δέντρου ύψους n a n = a n-1 +1, n >= 1, a 0 =1 a n = a n-1 +1 (x 0 ) a n-1 = a n- +1 (x 1 ) a n- = a n-3 +1 (x ) a n- = a 1 +1 (x ) a 1 = a 0 +1 (x n-1 ) a n = n a 0 +(1++ + n-1 ) n-1 Σ a n = n a 0 +Σ i i=0 a n = n +( n 1)/(-1)= n+1 1,n >= 0 (Μέθοδος των αθροιζόμενων παραγόντων)