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

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Θεωρία Γραφημάτων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές
Advertisements

Συλλογές, Στοίβες και Ουρές Σε πολλές εφαρμογές μας αρκεί η αναπαράσταση ενός δυναμικού συνόλου με μια δομή δεδομένων η οποία δεν υποστηρίζει την αναζήτηση.
Διαχείριση Έργου Οργάνωση, σχεδιασμός και προγραμματισμός έργων ανάπτυξης λογισμικού.
-Στοίβα-Ουρά - Πλεονεκτήματα πινάκων -Δομές δεδομένων δευτερεύουσας μνήμης -Πληροφορική και δεδομένα -Παραδείγματα-Προβλήματα ψευδοκώδικα.
Δυναμικοί πίνακες Πολλές δομές δεδομένων υλοποιούνται με χρήση πινάκων
ΕΠΛ 231 – Δομές Δεδομένων και Αλγόριθμοι
ΣΤΟΙΧΕΙΑ ΨΕΥΔΟΚΩΔΙΚΑ ΒΑΣΙΚΕΣ ΔΟΜΕΣ ΒΑΣΙΚΟΙ ΑΛΓΟΡΙΘΜΟΙ ΠΙΝΑΚΩΝ
Ανακτηση Πληροφοριασ σε νεφη Υπολογιστων
Διακριτά Μαθηματικά ΙI Δυαδικά Δέντρα Αναζήτησης
Διακριτά Μαθηματικά ΙI Δέντρα
TEMPLATES STANDARD TEMPLATE LIBRARY ΟΝΤΟΚΕΝΤΡΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ C Evangelos Theodoridis.
Αλγόριθμοι Ταξινόμησης
Page  1 Ο.Παλιάτσου Γαλλική Επανάσταση 1 ο Γυμνάσιο Φιλιππιάδας.
Αλγόριθμοι και Πολυπλοκότητα
Εισαγωγικές Έννοιες Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο.
Επιλογή Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο.
Δυαδικά Δένδρα Αναζήτησης, Δένδρα AVL
Εργασία Η υλοποίηση του αλγορίθμου συγχώνευσης θα πρέπει να χρησιμοποιεί την ιδέα των ροών (streams). Θα πρέπει να υπάρχουν δύο διαφορετικά είδη.
Αναγνώριση Προτύπων.
Γραφήματα & Επίπεδα Γραφήματα
Κοντινότεροι Κοινοί Πρόγονοι α βγ θ δεζ η π ν ι κλμ ρσ τ κκπ(λ,ι)=α, κκπ(τ,σ)=ν, κκπ(λ,π)=η κκπ(π,σ)=γ, κκπ(ξ,ο)=κ ξο κκπ(ι,ξ)=β, κκπ(τ,θ)=θ, κκπ(ο,μ)=α.
Διαίρει-και-Βασίλευε
Δυναμικός Προγραμματισμός
1 Θεματική Ενότητα Γραφήματα & Επίπεδα Γραφήματα.
ΘΠ06 - Μεταγλωττιστές Πίνακας Συμβόλων. Πίνακας Συμβόλων (Symbol Table) (Ι)  Είναι μια δομή στην οποία αποθηκεύονται τα ονόματα ενός προγράμματος και.
Ισορροπημένα Δένδρα TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Μπορούμε να επιτύχουμε χρόνο εκτέλεσης για.
A Balanced Tree Structure for Peer-to-Peer Networks
Δομές Αναζήτησης TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Χειριζόμαστε ένα σύνολο στοιχείων όπου το κάθε.
ΑΡΧΙΤΕΚΤΟΝΙΚΗ & ΟΡΓΑΝΩΣΗ ΥΠΟΛΟΓΙΣΤΩΝ Κεφάλαιο 1 Εισαγωγή
Δομές Δεδομένων 1 Στοίβα. Δομές Δεδομένων 2 Στοίβα (stack)  Δομή τύπου LIFO: Last In - First Out (τελευταία εισαγωγή – πρώτη εξαγωγή)  Περιορισμένος.
Αλγόριθμοι και Πολυπλοκότητα
Γράφοι: Προβλήματα και Αλγόριθμοι
Σχεδιαση Αλγοριθμων - Τμημα Πληροφορικης ΑΠΘ - Κεφαλαιο 9ο1 Άπληστοι αλγόριθμοι βελτιστοποίησης Προβλήματα βελτιστοποίησης λύνονται με μια σειρά επιλογών.
Μοντέλα Συστημάτων Παρουσιάσεις των συστημάτων των οποίων οι απαιτήσεις αναλύονται.
ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ 2: ΘΕΜΑΤΑ ΘΕΩΡΗΤΙΚΗΣ ΕΠΙΣΤΗΜΗΣ Η/Υ
Προσεγγιστικοί Αλγόριθμοι για NP-Δύσκολα Προβλήματα
Lists– Λίστες 1. Αυτό-αναφορικές δομές Τα μέλη μίας δομής μπορεί να είναι οποιουδήποτε τύπου, ακόμα και δείκτες σε δομές του ίδιου τύπου. Χρησιμοποιώντας.
Συντομότερες Διαδρομές
Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης
TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Ουρά Προτεραιότητας (priority queue) Δομή δεδομένων που υποστηρίζει.
TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Ουρά Προτεραιότητας (priority queue) Δομή δεδομένων που υποστηρίζει.
ΕΠΛ 223 Θεωρία και Πρακτική Μεταγλωττιστών7-1 Πίνακας Συμβόλων Πίνακας συμβόλων: δομή δεδομένων που χρησιμοποιείται για την αποθήκευση διαφόρων πληροφοριών.
Διερεύνηση γραφήματος. Ένας αλγόριθμος διερεύνησης γραφήματος επισκέπτεται τους κόμβους του γραφήματος με μια καθορισμένη στρατηγική, π.χ. κατά εύρος.
Διδακτική της Πληροφορικής ΗΥ302 Εργασία :Παρουσίαση σχολικού βιβλίου Γ’ Λυκείου Τεχνολογικής Κατεύθυνσης «Ανάπτυξη εφαρμογών σε προγραμματιστικό περιβάλλον»
Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 1 Κεφάλαιο 3 Η Σημασιολογία των Γλωσσών Προγραμματισμού Προπτυχιακό.
TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Ουρά Προτεραιότητας (priority queue) Δομή δεδομένων που υποστηρίζει.
ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Τμ.
Ελάχιστο Συνδετικό Δέντρο
Δομές Δεδομένων - Ισοζυγισμένα Δυαδικά Δένδρα (balanced binary trees)
Δομές Αναζήτησης TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Θέλουμε να υποστηρίξουμε δύο βασικές λειτουργίες:
1 Βάσεις Δεδομένων ΙI Επιμέλεια: ΘΟΔΩΡΗΣ ΜΑΝΑΒΗΣ SQL (3 από 3) T Manavis.
Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Κεφάλαιο 4: Συνδεσμικότητα Data Engineering Lab 1.
ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ 2: ΘΕΜΑΤΑ ΘΕΩΡΗΤΙΚΗΣ ΕΠΙΣΤΗΜΗΣ Η/Υ
Υπολογιστική Πολυπλοκότητα Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό.
Λεξικό, Union – Find Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο.
Αναζήτηση Κατά Βάθος Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο.
Quicksort Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο.
ΕΠΛ 231 – Δομές Δεδομένων και Αλγόριθμοι 8-1 Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: 2-3 Δένδρα, Υλοποίηση και πράξεις Β-δένδρα B-Δένδρα.
ΕΠΛ 231 – Δομές Δεδομένων και Αλγόριθμοι
Ασυμπτωτικός Συμβολισμός
Δομές Δεδομένων 1 Θέματα Απόδοσης. Δομές Δεδομένων 2 Οργανώνοντας τα Δεδομένα  Η επιλογή της δομής δεδομένων και του αλγορίθμου επηρεάζουν το χρόνο εκτέλεσης.
ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ Διδάσκοντες:Γιάννης Μαΐστρος Στάθης Ζάχος Νίκος Παπασπύρου
Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές TSP, Μέτρα κεντρικότητας, Dijkstra Data Engineering Lab.
Συνδετικότητα γραφήματος (graph connectivity). α β Υπάρχει μονοπάτι μεταξύ α και β; Παραδείγματα: υπολογιστές ενός δικτύου ιστοσελίδες ισοδύναμες μεταβλητές.
9η Διάλεξη Ταξινόμηση Ε. Μαρκάκης
12η Διάλεξη Διάσχιση Δέντρων και Ουρές Προτεραιότητας Ε. Μαρκάκης
Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον ΑΕΠΠ
Ουρά Προτεραιότητας (priority queue)
Στοιχεία Χωρικής Πολυπλοκότητας
Μεταγράφημα παρουσίασης:

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

Δομές Δεδομένων (Αναπαράσταση,) οργάνωση και διαχείριση συνόλων αντικειμένων για αποδοτική ενημέρωση και ανάκτηση πληροφορίας. Αποδοτική υλοποίηση αλγορίθμων και Βάσεων Δεδομένων. (Αποδοτική) αναπαράσταση – οργάνωση «σύνθετων» αντικειμένων με χρήση: Βασικών τύπων δεδομένων (ints, floats, chars, strings, arrays). Μηχανισμών που παρέχονται από γλώσσες προγραμματισμού (structs – records, objects). Διαχείριση: υλοποίηση στοιχειωδών λειτουργιών Ταξινόμηση, αναζήτηση, min/max/median, first/last, ... Εισαγωγή, διαγραφή, ενημέρωση. Λύσεις και τεχνικές για αποδοτική διαχείριση δεδομένων. Ανάλυση για απαιτήσεις και καταλληλότητα. Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2011) Ουρές Προτεραιότητας

Γενικευμένος Τύπος Δεδομένων Abstract Data Type (ADT): σύνολο (στιγμιότυπα) με λειτουργίες (μεθόδους) επί των στοιχείων του. Δομή Δεδομένων: Υλοποίηση ενός ADT Αναπαράσταση – οργάνωση στιγμιοτύπων και υλοποίηση λειτουργιών με κατάλληλους αλγόριθμους. Διατύπωση: ορισμός αναπαράστασης και περιγραφή υλοποίησης λειτουργιών (ψευδο-κώδικας). Ανάλυση: προσδιορισμός απαιτήσεων σε χώρο αποθήκευσης και χρόνο εκτέλεσης για κάθε (βασική) λειτουργία. Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2011) Ουρές Προτεραιότητας

Ουρά Προτεραιότητας (Priority Queue) Ουρά όπου σειρά διαγραφής καθορίζεται από προτεραιότητα (μεγαλύτερη – μικρότερη). Στοιχεία (προτεραιότητα, πληροφορία). Ακολουθία από λειτουργίες: insert(x): εισαγωγή x. deleteMax(): διαγραφή και επιστροφή στοιχείου μέγιστης προτεραιότητας. max(): επιστροφή στοιχείου μέγιστης προτεραιότητας (χωρίς διαγραφή). changePriority(k): αλλαγή προτεραιότητας θέσης k. isEmpty(), size(): βοηθητικές λειτουργίες. Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2011) Ουρές Προτεραιότητας

Εφαρμογές Άμεσες εφαρμογές: Έμμεσες εφαρμογές: Υλοποίηση ουρών αναμονής με προτεραιότητες. Δρομολόγηση με προτεραιότητες. Largest (Smallest) Processing Time First. Έμμεσες εφαρμογές: Βασικό συστατικό πολλών ΔΔ και αλγορίθμων: HeapSort (γενικά ταξινόμηση με επιλογή). Αλγόριθμος Huffman. Αλγόριθμοι Prim και Dijkstra. ... Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2011) Ουρές Προτεραιότητας

Στοιχεία Ουράς Προτεραιότητας Ουρές Προτεραιότητας: Ολική διάταξη στοιχείων με βάση προτεραιότητα. Στοιχεία είναι αριθμοί (με συνήθη διάταξη) που δηλώνουν προτεραιότητα. Εφαρμογή για στοιχεία κάθε συνόλου με σχέση ολικής διάταξης (αριθμοί, λέξεις, εισοδήματα, ...). Ουρά Προτεραιότητας με γραμμική λίστα: Διαγραφή μέγιστου ή εισαγωγή απαιτεί γραμμικό χρόνο. Υλοποίηση ουράς προτεραιότητας με σωρό (heap). Δυαδικό δέντρο με διάταξη σε κάθε μονοπάτι ρίζα – φύλλο. Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2011) Ουρές Προτεραιότητας

Ιεραρχικές Δομές: Δέντρα Γράφημα ακυκλικό και συνεκτικό. Δέντρο με n κορυφές έχει m = n – 1 ακμές. Δέντρο με ρίζα : Ιεραρχία Ύψος : μέγιστη απόσταση από ρίζα. Δυαδικό δέντρο : έχει ρίζα και κάθε κορυφή  2 παιδιά : Αριστερό και δεξιό. Κάθε υποδέντρο είναι δυαδικό δέντρο. Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2011) Ουρές Προτεραιότητας

Δυαδικά Δέντρα n(h): #κορυφών σε ΔΔ ύψους h. h + 1  n(h)  2h + 1 – 1  2i κορυφές στο επίπεδο i . 1 + 2 + … + 2h = 2h + 1 – 1 h(n): ύψος ΔΔ με n κορυφές: log2(n+1) – 1  h(n)  n – 1 Γεμάτο (full): Κάθε κορυφή είτε φύλλο είτε 2 παιδιά. Πλήρες (complete) : Γεμάτο και όλα τα επίπεδα συμπληρωμένα. n = 2h + 1 – 1 Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2011) Ουρές Προτεραιότητας

Σχεδόν Πλήρες Όλα τα επίπεδα συμπληρωμένα εκτός ίσως από τελευταίο που πληρώνεται από αριστερά προς τα δεξιά. n(h): #κορυφών για ύψος h: 2h  n(h)  2h + 1 – 1 Πλήρες(h) : 2h + 1 – 1 Πλήρες(h – 1) + 1 : (2h – 1) + 1 = 2h . h(n): ύψος για n κορυφές: log2(n+1) – 1  h(n)  log2 n Ύψος : h( n ) = log2 n #φύλλων = n / 2 Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2011) Ουρές Προτεραιότητας

Αναπαράσταση Δείκτες σε παιδιά, πατέρα (δυναμική). Σχεδόν πλήρη δυαδικά δέντρα : Πίνακας (στατική). Αρίθμηση αριστερά → δεξιά και πάνω → κάτω. Ρίζα : Π[1] Π[ i ] : πατέρας Π[ i / 2 ] αριστερό παιδί Π[ 2 i ] δεξιό παιδί Π[ 2 i + 1 ] Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2011) Ουρές Προτεραιότητας

Σωρός (heap) Δέντρο μέγιστου (ελάχιστου): Τιμές στις κορυφές και τιμή κάθε κορυφής  () τιμές παιδιών της. Σωρός : σχεδόν πλήρες δυαδικό δέντρο μέγιστου (ελάχιστου). Ύψος Θ(log n) , #φύλλων = n / 2 Πίνακας Α[ ] ιδιότ. σωρού :  i A[ i ]  A[ 2i ], A[ 2i + 1 ]. Μέγιστο : ρίζα Ελάχιστο : κάποιο φύλλο Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2011) Ουρές Προτεραιότητας

Σωροί και Μη-Σωροί Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2011) Ουρές Προτεραιότητας

Σωρός σαν Ουρά Προτεραιότητας int A[n], hs; max() : Ο(1) int max() { return(A[1]); } deleteMax() : int deleteMax() { if (isEmpty()) return(EMPTY); max = A[1]; A[1] = A[hs--]; combine(1); return(max); } Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2011) Ουρές Προτεραιότητας

Αποκατάσταση Προς-τα-Κάτω combine( i ) : Ενόσω όχι σωρός, - Α[ i ]  max{A[ 2i ], A[ 2i+1 ] } - συνεχίζω στο αντίστοιχο υποδέντρο. combine(int i) { l = 2*i; r = 2*i+1; mp = i; if ((l <= hs) && (A[l] > A[mp])) mp = l; if ((r <= hs) && (A[r] > A[mp])) mp = r; if (mp != i) { swap(A[i], A[mp]); combine(mp); } } Χρόνος για deleteMax() : Ο(ύψος) = O(log n) Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2011) Ουρές Προτεραιότητας

Εισαγωγή: Αποκατάσταση Προς-τα-Πάνω Εισαγωγή: Αποκατάσταση Προς-τα-Πάνω insert( k ) : Εισαγωγή στο τέλος. Ενόσω όχι σωρός, A[ i ]  A[ i / 2 ] insert(int k) { A[++hs] = k; i = hs; p = i / 2; while ((i > 1) && (A[p] < A[i])) { swap(A[p], A[i]); i = p; p = i / 2; } } Χρόνος για insert() : Ο(ύψος) = O(log n) Αύξηση προτεραιότητας : εισαγωγή (αποκατ. προς-τα-πάνω). Μείωση προτεραιότητας : διαγραφή (αποκατ. προς-τα-κάτω). Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2011) Ουρές Προτεραιότητας

Δημιουργία Σωρού Α[n] → σωρός με n εισαγωγές [3, 4, 6, 10, 8, 15, 16, 17, 12, 11, 20] Χρόνος O(n log n) . Ιεραρχικά (bottom-up): Υποδέντρα-σωροί ενώνονται σε δέντρο-σωρό. constructHeap(int n) { hs = n; for (i = n / 2; i > 0; i--) combine(i); } Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2011) Ουρές Προτεραιότητας

Χρόνος Δημιουργίας for (i = n / 2; i > 0; i--) combine(i); Χρόνος combine( i ) = Ο(ύψος i ). n / 4 στοιχεία χρόνος 1c n / 8 στοιχεία χρόνος 2c . . . . . . . . . . . . . . . . . . . . . . n / 2k στοιχεία χρόνος (k–1)c, k  log2 n Χρόνος constructHeap( ) = Θ(n). Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2011) Ουρές Προτεραιότητας

Απόδοση Σωρού Χώρος : Θ(1) (in-place) Χρόνοι : createHeap : Θ(n) insert, deleteMax : O(log n) max, size, isEmpty : Θ(1) Εξαιρετικά εύκολη υλοποίηση! Συμπέρασμα: Γρήγορη και ευρύτατα χρησιμοποιούμενη ουρά προτεραιότητας. Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2011) Ουρές Προτεραιότητας

Heap-Sort Αρχικοποίηση : δημιουργία σωρού με n στοιχεία. constructHeap() : χρόνος Θ(n). Εξαγωγή μέγιστου και τοποθέτηση στο τέλος (n – 1 φορές). deleteMax() : χρόνος Θ(log n). Χρόνος : Θ(n) + n Θ(log n) = Θ(n log n). hs = n; constructHeap(n); for (i = n; i > 1; i--) { swap(A[1], A[i]); hs--; combine(1); } Χρονική Πολυπλοκότητα Ταξινόμησης: Ο(n log n). Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2011) Ουρές Προτεραιότητας

Heap-Sort : Παράδειγμα constructHeap(n); for (i = n; i > 1; i--) { swap(A[1], A[i]); hs--; combine(1); } Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2011) Ουρές Προτεραιότητας

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

Ταξινόμηση με εισαγωγή Δέντρο Συγκρίσεων Λειτουργία συγκριτικών αλγορίθμων αναπαρίσταται με δέντρο συγκρίσεων (ή αποφάσεων). Αλγόριθμος  δέντρο συγκρίσεων.  είσοδο: αλγ. ακολουθεί μοναδικό μονοπάτι από ρίζα σε φύλλο. Ταξινόμηση με εισαγωγή Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2011) Ουρές Προτεραιότητας

Δέντρο Συγκρίσεων Ύψος δέντρου καθορίζει #συγκρίσεων (χ.π.) και αποτελεί κάτω φράγμα στο χρόνο εκτέλεσης. Ταξινόμηση n στοιχείων: τουλάχιστον n! φύλλα (όλες μεταθέσεις). Δυαδικό δέντρο. Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2011) Ουρές Προτεραιότητας

Δέντρο Συγκρίσεων Δυαδικό δέντρο ύψους h έχει  2h φύλλα. Ταξινόμηση n στοιχείων: 2h  n! Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2011) Ουρές Προτεραιότητας