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

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

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

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

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

Quicksort. Πρόβλημα Ταξινόμησης. Μέθοδοι Ταξινόμησης. Συγκριτικοί Αλγόριθμοι

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

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

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

Επιλογή. Πρόβλημα Επιλογής. Μέγιστο / Ελάχιστο. Εφαρμογές

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Συντομότερες Διαδρομές

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

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

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

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

Quicksort [Hoare, 62] Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Quicksort 1

Συντομότερες Διαδρομές

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

Ελάχιστο Συνδετικό Δέντρο

Ελάχιστο Συνδετικό Δέντρο

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

Συντομότερες ιαδρομές

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

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

Δομές Δεδομένων (Data Structures)

Πρόβληµα Επιλογής. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Επιλογή 1

Διαίρει-και-Βασίλευε. Διαίρει-και-Βασίλευε. MergeSort. MergeSort. Πρόβλημα Ταξινόμησης: Είσοδος : ακολουθία n αριθμών (α 1

Αναζήτηση Κατά Πλάτος

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

Διαίρει-και-Βασίλευε. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 2

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

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

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

Αναζήτηση Κατά Πλάτος

Αναζήτηση Κατά Πλάτος

Δυναμικός Προγραμματισμός

Ελάχιστο Συνδετικό έντρο

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

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

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

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

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

Συντομότερες ιαδρομές

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

Ελάχιστο Συνδετικό Δέντρο

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

Ελάχιστο Συνδετικό έντρο

Συντομότερες ιαδρομές

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

Αναζήτηση Κατά Πλάτος

Δυναμικός Προγραμματισμός

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

Συντομότερα Μονοπάτια για Όλα τα Ζεύγη Κορυφών

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

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

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

Αναζήτηση Κατά Βάθος. Επιµέλεια διαφανειών:. Φωτάκης διαφάνειες για SCC: A. Παγουρτζής. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

για NP-Δύσκολα Προβλήματα

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

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

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

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

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

Μέγιστη Ροή Ελάχιστη Τομή

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

υναμικός Προγραμματισμός

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

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

ΠΛΗ 20, 6 η ΟΣΣ: Δέντρα Εξετάσεις

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

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

Μέγιστη Ροή Ελάχιστη Τομή

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

υναμικός Προγραμματισμός

Προσεγγιστικοί Αλγόριθμοι για NP- ύσκολα Προβλήματα

Ασυμπτωτικός Συμβολισμός

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

Αναδρομικές Σχέσεις «ιαίρει-και-βασίλευε»

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

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

Δυναμικός Προγραμματισμός

Transcript:

Δομές Δεδομένων Ουρά Προτεραιότητας: Heap Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο (Αναπαράσταση,) οργάνωση και διαχείριση συνόλων αντικειμένων για αποδοτική ενημέρωση και ανάκτηση πληροφορίας. Αποδοτική υλοποίηση αλγορίθμων και Βάσεων Δεδομένων. (Αποδοτική) αναπαράσταση οργάνωση «σύνθετων» αντικειμένων με χρήση: Βασικών τύπων δεδομένων (ints, floats, chars, strings, arrays). Μηχανισμών που παρέχονται από γλώσσες προγραμματισμού (structs records, objects). Διαχείριση: υλοποίηση στοιχειωδών λειτουργιών Ταξινόμηση, αναζήτηση, min/max, first/last,... Εισαγωγή, διαγραφή, ενημέρωση. Λύσεις και τεχνικές για αποδοτική διαχείριση δεδομένων. Ανάλυση για απαιτήσεις και καταλληλότητα. Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 009) Ουρές Προτεραιότητας Γενικευμένος Τύπος Δεδομένων Ουρά Προτεραιότητας (Priority Queue) Γ.Τ.Δ.: σύνολο (στιγμιότυπα) με λειτουργίες (μεθόδους) επί των στοιχείων του. Δομή Δεδομένων: Υλοποίηση ενός Γ.Τ.Δ. Αναπαράσταση οργάνωση στιγμιοτύπων και υλοποίηση λειτουργιών με κατάλληλους αλγόριθμους. Διατύπωση: ορισμός αναπαράστασης και περιγραφή υλοποίησης λειτουργιών (ψευδο-κώδικας). Ανάλυση: προσδιορισμός απαιτήσεων σε χώρο αποθήκευσης και χρόνο εκτέλεσης για κάθε (βασική) λειτουργία. Ουρά όπου σειρά διαγραφής καθορίζεται από προτεραιότητα (μεγαλύτερη μικρότερη). Στοιχεία (προτεραιότητα, πληροφορία). Ακολουθία από λειτουργίες: insert(x): εισαγωγή x. deletemax(): διαγραφή και επιστροφή στοιχείου μέγιστης προτεραιότητας. max(): επιστροφή στοιχείου μέγιστης προτεραιότητας (χωρίς διαγραφή.) changepriority(k): αλλαγή προτεραιότητας θέσης k. isempty(), size(): βοηθητικές λειτουργίες. Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 009) Ουρές Προτεραιότητας Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 009) Ουρές Προτεραιότητας

Εφαρμογές Στοιχεία Ουράς Προτεραιτότητας Άμεσες εφαρμογές: Υλοποίηση ουρών αναμονής με προτεραιότητες. Δρομολόγηση με προτεραιότητες. Largest (Smallest) Processing Time First. Ουρές Προτεραιότητας: Ολική διάταξη στοιχείων με βάση προτεραιότητα. Στοιχεία είναι αριθμοί (με συνήθη διάταξη) που δηλώνουν προτεραιότητα. Εφαρμογή για στοιχεία κάθε συνόλου με σχέση ολικής διάταξης (αριθμοί, λέξεις, εισοδήματα,...). Έμμεσες εφαρμογές: Βασικό συστατικό πολλών ΔΔ και αλγορίθμων: HeapSort (γενικά ταξινόμηση με επιλογή). Αλγόριθμος Huffman. Αλγόριθμοι Prim και Dijkstra.... Γραμμικές Δομές Δεδομένων: ολικά διατεταγμένα στοιχεία. Υλοποίηση ουράς προτεραιότητας με σωρός (heap). Δυαδικό δέντρο με διάταξη σε κάθε μονοπάτι ρίζα φύλλο. Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 009) Ουρές Προτεραιότητας 5 Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 009) Ουρές Προτεραιότητας Ιεραρχικές Δομές: Δέντρα Δυαδικά Δέντρα Γράφημα ακυκλικό και συνεκτικό. Δέντρο με n κορυφές έχει m = n ακμές. Δέντρο με ρίζα : Ιεραρχία Ύψος : μέγιστη απόσταση από ρίζα. Δυαδικό δέντρο : έχει ρίζα και κάθε κορυφή παιδιά : Αριστερό και δεξιό. Κάθε υποδέντρο είναι δυαδικό δέντρο. #κορυφών για ύψος = h: h+ #κορυφών h+ h+ επίπεδα, κορ. / επίπ. i κορυφές στο επίπεδο i. + + + h = h + Ύψος για #κορυφών = n: log (n+) ύψος n Γεμάτο (full): Κάθε κορυφή είτε φύλλο είτε παιδιά. Πλήρες (complete) : Γεμάτο και όλα τα επίπεδα συμπληρωμένα. n = h+ Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 009) Ουρές Προτεραιότητας 7 Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 009) Ουρές Προτεραιότητας

Σχεδόν Πλήρες Αναπαράσταση Όλαταεπίπεδασυμπληρωμένα εκτός από τελευταίο που πληρώνεται από αριστερά προς τα δεξιά. #κορυφών για ύψος = h: h n h + Πλήρες(h) : h+ 5 Πλήρες(h )+:( h )+ = h. Ύψος για #κορυφών = n: log (n+) h log n Ύψος : h(n) = log n 7 Δείκτες σε παιδιά, πατέρα (δυναμική). Σχεδόν πλήρη δυαδικά δέντρα : Πίνακας (στατική). Αρίθμηση αριστερά δεξιά και πάνω κάτω. Ρίζα : Π[] Π[i] : πατέρας Π[i /] αριστερό παιδί Π[i ] δεξιό παιδί Π[i +] 7 0 0 5 0 7 0 5 5 7 9 0 #φύλλων = n / Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 009) Ουρές Προτεραιότητας 9 Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 009) Ουρές Προτεραιότητας 0 Σωρός (heap) Σωροί και Μη-Σωροί Δέντρο μέγιστου (ελάχιστου): Τιμέςστιςκορυφέςκαιτιμή κάθε κορυφής ( ) τιμές παιδιών της. Σωρός : σχεδόν πλήρες δυαδικό δέντρο μέγιστου (ελάχιστου). Ύψος Θ(log n), #φύλλων = n / Πίνακας Α[ ] ιδιότ. σωρού : i A[ i ] A[i], A[i+]. Μέγιστο : ρίζα Ελάχιστο : φύλλο 7 0 5 0 0 7 0 5 5 7 9 0 Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 009) Ουρές Προτεραιότητας Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 009) Ουρές Προτεραιότητας

Σωρός σαν Ουρά Προτεραιότητας Αποκατάσταση Προς-τα-Κάτω int A[n], hs; max() : Ο() int max() { return(a[]); } deletemax() : int deletemax() { if (isempty()) return(empty); max := A[]; A[] := A[hs--]; combine(); return(max); } 0 5 7 0 5 5 0 7 0 5 combine(i) : Ενόσω όχι σωρός, - Α[i] max{a[i], A[i+]} 5 7 - συνεχίζω στο αντίστοιχο υποδέντρο. combine(int i) { l := *i; r := *i+; lc := i; if ((l <= hs) AND (A[l] > A[lc])) 7 5 lc := l; if ((r <= hs) AND (A[r] > A[lc])) lc := r; 0 5 if (lc!= i) { swap(a[i], A[lc]); combine(lc); } } 5 7 7 5 0 5 Χρόνος για deletemax() : Ο(ύψος) = O(log n) Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 009) Ουρές Προτεραιότητας Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 009) Ουρές Προτεραιότητας Εισαγωγή: Αποκατάσταση Προς-τα-Πάνω Δημιουργία Σωρού insert( k ): 0 Εισαγωγή στο τέλος. Ενόσω όχι σωρός, A[i] A[i /] insert(int k) { 7 9 A[++hs] := k; i := hs; p := i / ; while ((i > ) AND (A[p] < A[i])) 0 9 7 { swap(a[p], A[i]); i := p; p := i / ; } } 5 Χρόνος για insert() : Ο(ύψος) = O(log n) Αύξηση προτεραιότητας : εισαγωγή (αποκατ. προς-τα-πάνω). Μείωση προτεραιότητας : διαγραφή (αποκατ. προς-τα-κάτω). Α[n] σωρός με n εισαγωγές [,,, 0,, 5,, 7,,, 0] Χρόνος O(n log n). Ιεραρχικά (bottom-up): Υποδέντρα-σωροί ενώνονται σε δέντρο-σωρό. constructheap(int n) { hs := n; for (i := n / ; i > 0; i--) combine(i); } 0 0 7 0 5 7 0 0 Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 009) Ουρές Προτεραιότητας 5 Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 009) Ουρές Προτεραιότητας

Χρόνος Δημιουργίας Απόδοση Σωρού for (i := n / ; i > 0; i--) combine(i); Χρόνος combine( i ) = Ο(ύψος i). n /στοιχεία χρόνος Ο() n /στοιχεία χρόνος Ο()...................... n / k στοιχεία χρόνος Ο(k), k log n Χρόνος constructheap( ) = Θ(n). Χώρος : Θ(n) (in-place) Χρόνοι : createheap : Θ(n) insert, deletemax : O(log n) max, size, isempty : Θ() Εξαιρετικά εύκολη υλοποίηση! Συμπέρασμα: Γρήγορη και ευρύτατα χρησιμοποιούμενη ουρά προτεραιότητας. Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 009) Ουρές Προτεραιότητας 7 Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 009) Ουρές Προτεραιότητας Heap-Sort Heap-Sort : Παράδειγμα Αρχικοποίηση : δημιούργησε σωρό με όλα τα στοιχεία. constructheap() : χρόνος Θ(n). Εξαγωγή μέγιστου και τοποθέτηση στο τέλος (n φορές). deletemax() : χρόνος Θ(log n). Χρόνος : Θ(n) + n Θ(log n) = Θ(n log n). constructheap(n); for (i := n; i > ; i--) { swap(a[], A[i]); hs--; combine(); } 7 5 5 7 5 hs := n; constructheap(n); for (i := n; i > ; i--) { swap(a[], A[i]); hs--; combine(); } 7 5 5 7 5 7 Χρονική Πολυπλοκότητα Ταξινόμησης: Ο(n log n). Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 009) Ουρές Προτεραιότητας 9 Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 009) Ουρές Προτεραιότητας 0

Συγκριτικοί Αλγόριθμοι Δέντρο Συγκρίσεων Ταξινόμηση μόνο με συγκρίσεις και μετακινήσεις στοιχείων. Καμία άλλη ενέργεια στα στοιχεία (π.χ. ομαδοποίηση με βάση δυαδική αναπαράσταση). Κάθε ντετερμινιστικός συγκριτικός αλγ. ταξινόμησης χρειάζεται Ω(n log n) συγκρίσεις μεταξύ στοιχείων. Αντίστοιχο κάτω φράγμα για πιθανοτικούς αλγόριθμους. Χρονική Πολυπλοκότητα Ταξινόμησης: Θ(n log n) Υπάρχουν αλγόριθμοι με γραμμικό χρόνο για συγκεκριμένους τύπους δεδομένων (π.χ. αριθμούς). Λειτουργία συγκριτικών αλγορίθμων αναπαρίσταται με δέντρο συγκρίσεων (ή αποφάσεων). Αλγόριθμος δέντρο συγκρίσεων. είσοδο: αλγ. ακολουθεί μοναδικό μονοπάτι από ρίζα σε φύλλο. Ταξινόμηση με εισαγωγή Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 009) Ουρές Προτεραιότητας Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 009) Ουρές Προτεραιότητας Δέντρο Συγκρίσεων Δέντρο Συγκρίσεων Ύψος δέντρου καθορίζει #συγκρίσεων (χ.π.) και αποτελεί κάτω φράγμα στο χρόνο εκτέλεσης. Ταξινόμηση n στοιχείων: τουλάχιστον n! φύλλα (όλες μεταθέσεις). Δυαδικό δέντρο. Δυαδικό δέντρο ύψους h έχει h φύλλα. Χρόνος εκτέλεσης = Ω(h). Ταξινόμηση n στοιχείων: h n! Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 009) Ουρές Προτεραιότητας Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 009) Ουρές Προτεραιότητας