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

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

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

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

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

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

Αλγόριθμοι και πολυπλοκότητα Bucket-Sort και Radix-Sort

Διοικητική Λογιστική

1 η Διάλεξη. Ενδεικτικές λύσεις ασκήσεων

Αλγόριθμοι και πολυπλοκότητα Συγχωνευτική Ταξινόμηση

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

Αλγόριθμοι και πολυπλοκότητα Ταχυταξινόμηση (Quick-Sort)

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

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

Θερμοδυναμική. Ανοικτά Ακαδημαϊκά Μαθήματα. Πίνακες Νερού σε κατάσταση Κορεσμού. Γεώργιος Κ. Χατζηκωνσταντής Επίκουρος Καθηγητής

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

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

Ενδεικτικές λύσεις ασκήσεων διαχείρισης έργου υπό συνθήκες αβεβαιότητας

Μάρκετινγκ Αγροτικών Προϊόντων

Αλγόριθμοι και πολυπλοκότητα Περιήγηση Πανεπιστημίων

Τίτλος Μαθήματος: Μαθηματική Ανάλυση Ενότητα Γ. Ολοκληρωτικός Λογισμός

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

Λογιστική Κόστους Ενότητα 12: Λογισμός Κόστους (2)

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών

Διοικητική Λογιστική

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 3: Έλεγχοι στατιστικών υποθέσεων

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 1: Καταχώρηση δεδομένων

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 2: Περιγραφική στατιστική

Ενότητα. Εισαγωγή στις βάσεις δεδομένων

Λογιστική Κόστους Ενότητα 8: Κοστολογική διάρθρωση Κύρια / Βοηθητικά Κέντρα Κόστους.

Ψηφιακή Επεξεργασία Εικόνων

Διεθνείς Οικονομικές Σχέσεις και Ανάπτυξη

Βάσεις Περιβαλλοντικών Δεδομένων

Προγραμματισμός Η/Υ. Βασικές Προγραμματιστικές Δομές. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

Εισαγωγή στους Αλγορίθμους Ενότητα 9η Άσκηση - Αλγόριθμος Kruskal

Εισαγωγή στην Διοίκηση Επιχειρήσεων

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

Τεχνικό Σχέδιο - CAD

Οικονομική Γεωργικών Εκμεταλλεύσεων

Θερμοδυναμική. Ανοικτά Ακαδημαϊκά Μαθήματα. Πίνακες Νερού Υπέρθερμου Ατμού. Γεώργιος Κ. Χατζηκωνσταντής Επίκουρος Καθηγητής

ΗΛΕΚΤΡΟΝΙΚΗ ΙIΙ Ενότητα 6

Τεχνικό Σχέδιο - CAD

Διαφήμιση και Δημόσιες Σχέσεις Ενότητα 9: Σχέσεις διαφημιστή-διαφημιζόμενου

Στατιστική. 6 ο Μάθημα: Διαστήματα Εμπιστοσύνης και Έλεγχοι Υποθέσεων. Γεώργιος Μενεξές Τμήμα Γεωπονίας ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ

Μάρκετινγκ Αγροτικών Προϊόντων

Μηχανολογικό Σχέδιο Ι

Μάρκετινγκ Αγροτικών Προϊόντων

Διδακτική Πληροφορικής

Διοίκηση Εξωτερικής Εμπορικής Δραστηριότητας

Διαχείριση Πολιτισμικών Δεδομένων

Κβαντική Επεξεργασία Πληροφορίας

Διδακτική Πληροφορικής

Εισαγωγή στους Αλγορίθμους Ενότητα 9η Άσκηση - Αλγόριθμος Prim

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών

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

Ενδεικτικές λύσεις ασκήσεων διαγραμμάτων περίπτωσης χρήσης (1ο Μέρος)

Προσχολική Παιδαγωγική Ενότητα 2: Οργάνωση χρόνου και χώρου στα νηπιαγωγεία

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

Μυελού των Οστών Ενότητα #1: Ερωτήσεις κατανόησης και αυτόαξιολόγησης

Διοικητική Λογιστική

Εκπαιδευτική Διαδικασία και Μάθηση στο Νηπιαγωγείο Ενότητα 1: Εισαγωγή

ΗΛΕΚΤΡΟΝΙΚΗ Ι Ενότητα 5

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

Τεχνικό Σχέδιο - CAD. Τόξο Κύκλου. Τόξο Κύκλου - Έλλειψη. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

Κοινωνία & Υγεία Υγεία Πρόληψη Προαγωγή υγείας: Βαθμίδες πρόληψης

Μεθοδολογία Έρευνας Κοινωνικών Επιστημών Ενότητα 2: ΣΥΓΚΕΝΤΡΩΣΗ ΠΛΗΡΟΦΟΡΙΩΝ ΜΑΡΚΕΤΙΝΓΚ Λοίζου Ευστράτιος Τμήμα Τεχνολόγων Γεωπόνων-Kατεύθυνση

Ιστορία της μετάφρασης

Αγροτικός Τουρισμός. Ενότητα 9 η : Εκπαιδευτικές τεχνικές στον τουρισμό. Όλγα Ιακωβίδου Τμήμα Γεωπονίας ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Εισαγωγή στην Πληροφορική

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Βάσεις Δεδομένων. Ενότητα 1: Εισαγωγή στις Βάσεις δεδομένων. Πασχαλίδης Δημοσθένης Τμήμα Ιερατικών σπουδών

Κβαντική Επεξεργασία Πληροφορίας

Διδακτική Πληροφορικής

Γραμμική Άλγεβρα και Μαθηματικός Λογισμός για Οικονομικά και Επιχειρησιακά Προβλήματα

Βέλτιστος Έλεγχος Συστημάτων

Εννοιες και Παράγοντες της Ψηφιακής Επεξεργασίας Εικόνας

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Τεχνολογία Πολιτισμικού Λογισμικού

Λογιστική Κόστους Ενότητα 11: Λογισμός Κόστους (1)

Διεθνείς Οικονομικές Σχέσεις και Ανάπτυξη

Βάσεις Περιβαλλοντικών Δεδομένων

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

Διοίκηση Ολικής Ποιότητας & Επιχειρηματική Αριστεία Ενότητα 1.3.3: Μεθοδολογία εφαρμογής προγράμματος Ολικής Ποιότητας

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

Βάσεις Περιβαλλοντικών Δεδομένων

ΔΙΔΑΚΤΙΚΗ ΤΗΣ ΚΑΛΑΘΟΣΦΑΙΡΙΣΗΣ ΙΙ

Διδακτική των εικαστικών τεχνών Ενότητα 3

Εισαγωγή στους Υπολογιστές

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Εισαγωγή στην Πληροφορική

Έλεγχος και Διασφάλιση Ποιότητας Ενότητα 4: Μελέτη ISO Κουππάρης Μιχαήλ Τμήμα Χημείας Εργαστήριο Αναλυτικής Χημείας

Εισαγωγή στους Υπολογιστές

Θέματα Εφαρμοσμένης. Ενότητα 14.2: Η ψήφος στα πρόσωπα. Θεόδωρος Χατζηπαντελής Τμήμα Πολιτικών Επιστημών ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

Στατιστική. 5 ο Μάθημα: Βασικές Έννοιες Εκτιμητικής. Γεώργιος Μενεξές Τμήμα Γεωπονίας ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ

Μυκητολογικές ασθένειες φυτών μεγάλης καλλιέργειας

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

Ψηφιακή Επεξεργασία Εικόνων

Transcript:

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

Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο Πανεπιστήμιο Κρήτης» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. 2

Σημείωμα αδειοδότησης Το παρόν υλικό διατίθεται με τους όρους της άδειας χρήσης Creative Commons Αναφορά, Μη Εμπορική Χρήση, Όχι Παράγωγο Έργο 4.0 [1] ή μεταγενέστερη, Διεθνής Έκδοση. Εξαιρούνται τα αυτοτελή έργα τρίτων π.χ. φωτογραφίες, διαγράμματα κ.λ.π., τα οποία εμπεριέχονται σε αυτό και τα οποία αναφέρονται μαζί με τους όρους χρήσης τους στο «Σημείωμα Χρήσης Έργων Τρίτων». [1] http://creativecommons.org/licenses/by-nc-nd/4.0/ Ως Μη Εμπορική ορίζεται η χρήση: που δεν περιλαμβάνει άμεσο ή έμμεσο οικονομικό όφελος από την χρήση του έργου, για το διανομέα του έργου και αδειοδόχο που δεν περιλαμβάνει οικονομική συναλλαγή ως προϋπόθεση για τη χρήση ή πρόσβαση στο έργο που δεν προσπορίζει στο διανομέα του έργου και αδειοδόχο έμμεσο οικονομικό όφελος (π.χ. διαφημίσεις) από την προβολή του έργου σε διαδικτυακό τόπο Ο δικαιούχος μπορεί να παρέχει στον αδειοδόχο ξεχωριστή άδεια να χρησιμοποιεί το έργο για εμπορική χρήση, εφόσον αυτό του ζητηθεί.. 3

Ουρές Προτεραιότητας Sell 100 IBM $122 Sell 300 IBM $120 Buy 500 IBM $119 Buy 400 IBM $118 Ουρές Προτεραιότητας 4

Περιγραφή και Υλικό Ανάγνωσης Ο Αφηρημένος Τύπος Δεδομένων της Ουράς Προτεραιότητας (PriorityQueue ADT) ( 2.4.1) Σχέση απόλυτης ταξινόμησης ( 2.4.1) Ο Αφηρημένος Τύπος Δεδομένων του Συγκριτή (Comparator ADT) ( 2.4.1) Ταξινόμηση με ουρά προτεραιότητας ( 2.4.2) Selection-sort ( 2.4.2) Insertion-sort ( 2.4.2) Ουρές Προτεραιότητας 5

Ο ΑΤΔ της Ουράς Προτεραιότητας Μια ουρά προτεραιότητας αποθηκεύει μια συλογή αντικειμένων Ένα αντικείμενο είναι ένα ζευγάρι (κλειδί, στοιχείο) Κύριες πράξεις της ουράς προτεραιότητας insertitem(k, o) εισάγει ένα αντικείμενο με κλειδί k και στοιχείο o removemin() απομακρύνει το αντικείμενο με το μικρότερο κλειδί και επιστρέφει το στοιχείο Βοηθητικές πράξεις minkey(k, o) επιστρέφει, αλλά δεν απομακρύνει, το μικρότερο κλειδί ενός αντικειμένου minelement() επιστρέφει, αλλά δεν απομακρύνει, το στοιχείο του αντικειμένου με το μικρότερο κλειδί size(), isempty() Εφαρμογές: Standby flyers Πλειστηριασμοί Χρηματιστήριο Ουρές Προτεραιότητας 6

Σχέση Απόλυτης Ταξινόμησης Κλειδιά σε μια ουρά προτεραιότητας μπορούν να είναι αυθαίρετα αντικείμενα πάνω στα οποία ορίζεται μια σειρά Δύο ξεχωριστά αντικείμενα σε μια ουρά προτεραιότητας μπορούν να έχουν το ίδιο κλειδί Μαθηματική έννοια της σχέσης απόλυτης ταξινόμησης Ανακλαστική ιδιότητα: x x Αντισυμμετρική ιδιότητα: x y y x x = y Μεταβατική ιδιότητα: x y y z x z Ουρές Προτεραιότητας 7

Ο ΑΤΔ του Συγκριτή Ένας συγκριτής περικλείει την πράξη της σύγκρισης δύο αντικειμένων σύμφωνα με μια δεδομένη σχέση απόλυτης ταξινόμησης Μια γενική ουρά προτεραιότητας χρησιμοποιεί ένα βοηθητικό συγκριτή Ο συγκριτής είναι ανεξάρτητος από τα κλειδιά που συγκρίνονται Όταν η ουρά προτεραιό-τητας χρειάζεται να συγκρίνει δύο κλειδιά, χρησιμοποιεί τον συγκριτή Πράξεις του ΑΤΔ του συγκριτή, όλες με επιστρεφόμενο τύπο Boolean islessthan(x, y) islessthanorequalto(x,y) isequalto(x,y) isgreaterthan(x, y) isgreaterthanorequalto(x,y) iscomparable(x) Ουρές Προτεραιότητας 8

Ταξινόμηση με Ουρά Προτεραιότητας (PQ-sort) Μπορούμε να χρησιμοποιήσουμε μια ουρά προτεραιότητας για να ταξινομήσουμε ένα σύνολο από συγκρίσιμα στοιχεία 1. Εισήγαγε τα στοιχεία ένα προς ένα με μια σειρά από πράξεις insertitem(e, e) 2. Απομάκρυνε τα στοιχεία σε ταξινομημένη σειρά με μια σειρά από πράξεις removemin() Ο χρόνος εκτέλεσης αυτής της μεθόδου ταξινόμησης εξαρτάται από την υλοποίηση της ουράς προτεραιότητας Algorithm PQ-Sort(S, C) Input sequence S, comparator C for the elements of S Output sequence S sorted in increasing order according to C P priority queue with comparator C while S.isEmpty () e S.remove (S. first ()) P.insertItem(e, e) while P.isEmpty() e P.removeMin() S.insertLast(e) Ουρές Προτεραιότητας 9

Sequence-based Priority Queue Υλοποίηση με μια μηταξινομημένη ακολουθία Αποθήκευσε τα αντικείμενα της ουράς προτεραιότητας σε μια ακολουθία βασισμένη σε λίστα, σε αυθαίρετη σειρά Απόδοση: Η insertitem χρειάζεται O(1) χρόνο καθώς μπορούμε να εισάγουμε κάθε αντικείμενο στην αρχή ή στο τέλος της ακολουθίας Οι removemin, minkey και minelement χρειάζονται O(n) χρόνο καθώς πρέπει να διασχίσουμε όλη την ακολουθία για να βρούμε το μικρότερο κλειδί Υλοποίηση με μια ταξινομημένη ακολουθία Αποθήκευσε τα αντικείμενα της ουράς προτεραιότητας σε μια ακολουθία, ταξινομημένα με βάση το κλειδί τους Απόδοση: Η insertitem χρειάζεται O(n) χρόνο καθώς πρέπει να βρούμε τη θέση που θα εισάγουμε το αντικείμενο Οι removemin, minkey και minelement χρειάζονται O(1) χρόνο καθώς το μικρότερο κλειδί βρίσκεται πάντα στην αρχή της ακολουθίας Ουρές Προτεραιότητας 10

Selection-Sort (ταξινόμηση διαλογής) Η selection-sort είναι μια παραλλαγή της PQ-sort όπου η ουρά προτεραιότητας έχει υλοποιηθεί με μια μηταξινομημένη ακολουθία Χρόνος εκτέλεσης της Selection-sort: 1. Η εισαγωγή των στοιχείων στην ουρά προτεραιότητας με n πράξεις insertitem χρειάζεται O(n) χρόνο 2. Η απομάκρυνση των στοιχείων σε ταξινομημένη σειρά από την ουρά προτεραιότητας με n πράξεις removemin χρειά-ζεται χρόνο ανάλογο του 1 + 2 + + n Η Selection-sort εκτελείται σε O(n 2 ) χρόνο Ουρές Προτεραιότητας 11

Insertion-Sort (ταξινόμηση εισαγωγής) Η Insertion-sort είναι μια παραλλαγή της PQ-sort όπου η ουρά προτεραιότητας έχει υλοποιηθεί με μια ταξινομημένη ακολουθία Χρόνος εκτέλεσης της Insertion-sort: 1. Η εισαγωγή των στοιχείων στην ουρά προτεραιότητας με n πράξεις insertitem χρειάζεται χρόνο ανάλογο του 1 + 2 + + n 2. Η απομάκρυνση των στοιχείων σε ταξινομημένη σειρά από την ουρά προτεραιότητας με n πράξεις removemin χρειάζεται O(n) χρόνο Η Insertion-sort εκτελείται σε O(n 2 ) χρόνο Ουρές Προτεραιότητας 12

In-place Insertion-sort Αντί να χρησιμοποιήσουμε μια εξωτερική δομή δεδομένων, μπορούμε να υλοποιήσουμε selection-sort και insertion-sort in-place (δηλαδή πάνω στην ίδια δομή) Ένα τμήμα της εισαγώμενης ακολουθίας εξυπηρετεί ως η ουρά προτεραιότητας Για in-place insertion-sort Κρατάμε ταξινομημένο το αρχικό τμήμα της ακολου-θίας Μπορούμε να χρησιμοποιήσουμε τη swapelements αντί να τροποποιήσουμε την ακολουθία 5 4 2 3 1 5 4 2 3 1 4 5 2 3 1 2 4 5 3 1 2 3 4 5 1 1 2 3 4 5 1 2 3 4 5 Ουρές Προτεραιότητας 13

Τέλος Ενότητας