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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Βασικές Έννοιες Θεωρίας Γραφημάτων

οµές εδοµένων 3 ο Εξάµηνο ΕΝΟΤΗΤΑ 4 ΕΝ ΡΑ

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

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

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

Αφηρημένες Δομές Δεδομένων. Στοίβα (Stack) Υλοποίηση στοίβας

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

Heapsort Using Multiple Heaps

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

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

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

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

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

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

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

ΕΝΟΤΗΤΑ 5 ΥΝΑΜΙΚΑ ΛΕΞΙΚΑ ΙΣΟΖΥΓΙΣΜΕΝΑ ΕΝ ΡΑ

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

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

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

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

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

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

έντρα Πολλαπλής ιακλάδωσης και (a, b)- έντρα

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

έντρα ομές εδομένων 3ο εξάμηνο ιδάσκων: Χρήστος ουλκερίδης ιαφάνειες προσαρμοσμένες από το υλικό της Μαρίας Χαλκίδη

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

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

ΕΝΟΤΗΤΑ 9 ΕΝΩΣΗ ΞΕΝΩΝ ΣΥΝΟΛΩΝ ( ΟΜΕΣ UNION-FIND)

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

Βασικές Έννοιες Θεωρίας Γραφημάτων

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

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

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

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

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

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

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

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

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

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

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

Δηµοσθένης Σταµάτης Τµήµα Πληροφορικής ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΔΕΝΤΡΑ (TREES) B C D E F G H I J K L M

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

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

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

Βασικές Προτάσεις. έντρα. υαδικά έντρα Αναζήτησης ( Α) Ισοζυγισµένα έντρα και Υψος. Κάθε δέντρο µε n κόµβους έχει n 1 ακµές.

Αλγόριθμοι Αναζήτησης

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

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

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

ιακριτά Μαθηµατικά και Μαθηµατική Λογική ΠΛΗ20 Ε ρ γ α σ ί α 4η Θεωρία Γραφηµάτων

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

Οι ϐασικές πράξεις που ορίζονται για τη δοµή δεδοµένων σωρός, είναι η πράξη της εισαγωγής και η πράξη της διαγραφής ενός στοιχείου.

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

Βασικές δοµές δεδοµένων. Ορολογία λιστών. 8.1 Βασικές έννοιες δοµών δεδοµένων 8.2 Υλοποίηση δοµών δεδοµένων 8.3 Μια σύντοµη υπόθεση εργασίας

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

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

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

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

ΔυαδικάΔΕΝΔΡΑΑναζήτησης

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

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

Μάθημα 22: Δυαδικά δέντρα (Binary Trees)

Transcript:

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

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

Λύσεις () Ένας πίνακας και ταξινοµηση κατά αύξουσα σειρά προτεραιοτήτων. Αναζήτηση του µέγιστου ιαγραφή Αλλά εισαγωγή ; Ο(n), n το µήκος της ουράς (άσκηση)

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

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

6 4 8 9 3 4 7 Το δένδρο πληρεί δύο βασικές ιδιότητες: - Τιµή κάθε κόµβου τιµής παιδιών - Το δέντρο είναι σχεδόν πλήρες

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

Παράδειγµα: 6 0 4 3 4 8 5 6 7 9 3 8 9 4 7

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

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

Παρ. : i 3 4 5 6 7 8 9 a[i] 6 4 8 9 3 4 7 6 θέση 7: 4 *3+ 8 9 3 4 7

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

Παραδειγµα **** 6 6 4 4 8 9 3 8 9 3 4 7 4 7 5 8 6 4 5 4 7 9 3 8 6 5 4 4 7 9 3

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

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

Παράδειγµα:**** 6 5 5 8 4 9 3 8 4 9 3 4 7 4 7 8 5 4 4 7 9 3 8 5 4 4 7 9 3

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

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

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

υαδικό ένδρο (συνέχεια... ( ) ( ) ( ) ( ) n n k n k n k n n n n n k k k k k k log log log log log log + = + + = + + + < + < < < < + = + + + +

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

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

ένδρα (υπενθύµιση) Ένα δένδρο είναι είτε ένα ατοµικό δένδρο (ένα φύλλο), είτε ένας κόµβος και µια ακολουθία από δένδρα. Κόµβοι εσωτερικοί φύλλα

n n n 8 n 3 n 7 n 9 n n n 4 n 5 n 6 n : ρίζα n 5, n 6, n 7, n 9, n, n : φύλλα n, n, n 3, n 4, n 5: εσωτερικοί κόµβοι

υαδικά ένδρα (υπενθύµιση) Οι κόµβοι έχουν το πολύ δυο παιδιά Το βάθος, ενός κόµβου είναι το µήκος του µονοπατιού που τον ενώνει µε τηρίζα. ρίζα βάθος "0" τα παιδιά της βάθος "" οι άλλοι κόµβοι βάθος ">"

Παράδειγµα: 6 0 4 3 4 8 5 6 7 9 3 8 9 4 7

υαδικό ένδρο(υπενθύµιση) Υψος ενός κόµβου: αριθµός πλευρών του µακρύτερου µονοπατιού απο τον κόµβο σε ένα φύλλο. Υψος δέντρου: το ύψος της ρίζας υαδικό δένδρο µε m κόµβους και ύψος n Ισχύει m n m log

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

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

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

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

Ασκηση: Αναζήτηση και εισαγωγή σε υαδικά δέντρα, Πολυπλοκότητα Successor(x) Minimum(T) Maximum(T) Inorder walk Preorder walk Postorderwalk Delete(x)