Αλγόριθμοι Ταξινόμησης – Μέρος 4 Μανόλης Κουμπαράκης Δομές Δεδομένων και Τεχνικές Προγραμματισμού 1.

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Indexing.
Advertisements

3.4 Στοίβα (stack) (μόνο θεωρία)
Αφαιρετικοί Τυποι Δεδομένων
Παράδειγμα 1:Ταξινόμηση Φυσαλίδας
ΣΤΟΙΧΕΙΑ ΨΕΥΔΟΚΩΔΙΚΑ ΒΑΣΙΚΕΣ ΔΟΜΕΣ ΒΑΣΙΚΟΙ ΑΛΓΟΡΙΘΜΟΙ ΠΙΝΑΚΩΝ
Ανακτηση Πληροφοριασ σε νεφη Υπολογιστων
Επιμέλεια Π. Τσάκωνας. 1. Ποια από τα ακόλουθα αποσπάσματα αλγόριθμων πραγματοποιούν σωστά την ταξινόμηση του πίνακα Α; ΓΙΑ i ΑΠΟ 2 ΜΕΧΡΙ Ν ΓΙΑ j ΑΠΟ.
Εισαγωγικές Έννοιες Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο.
Επιλογή Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο.
Εργασία Η υλοποίηση του αλγορίθμου συγχώνευσης θα πρέπει να χρησιμοποιεί την ιδέα των ροών (streams). Θα πρέπει να υπάρχουν δύο διαφορετικά είδη.
Βελτιστοποίηση και Επεξεργασία Ερωτημάτων
Μερικά ακόμη παραδείγματα
Διαίρει-και-Βασίλευε
Τυχαιοκρατικοί Αλγόριθμοι TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA Πιθανότητες και Αλγόριθμοι Ανάλυση μέσης.
Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο1 Διαίρει και Βασίλευε γνωστότερη Η γνωστότερη μέθοδος σχεδιασμού αλγορίθμων: Διαιρούμε.
EXTERNAL MEMORY ALGORITHMS AND DATA STRUCTURES: DEALING WITH MASSIVE DATA Διδάσκοντες:Μακρής Χρήστος Βοηθητικό υλικό: Αντωνέλης Παναγιώτης
Ουρά Προτεραιότητας: Heap
Δομές Δεδομένων.
Ενεργή επιλογή αλγορίθμου, Active Algorithm Selection, Feilong Chen and Rong Jin Εύα Σιταρίδη.
Alpha-Beta Pruning for Games with Simultaneous Moves Abdallah Saffidine, Hilmar Finnsson, Michael Buro Παρουσίαση: Βάλβης Δημήτριος Εργασία στο μάθημα.
TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Ουρά Προτεραιότητας (priority queue) Δομή δεδομένων που υποστηρίζει.
Δομές Δεδομένων. Επιλογή δομής δεδομένων Κριτήρια: – Μέγεθος του προβλήματος – Πως θα χρησιμοποιηθεί Ενέργειες που καθορίζουν το κόστος: – Lookup: αναζήτηση/έλεγχος.
Αλγόριθμοι Ταξινόμησης
ΙΟΝΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΤΜΗΜΑ ΑΡΧΕΙΟΝΟΜΙΑΣ & ΒΙΒΛΙΟΘΗΚΟΝΟΜΙΑΣ ΠΜΣ: «ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΑΣ» ΜΑΘΗΜΑ: ΗΛΕΚΤΡΟΝΙΚΗ ΔΗΜΟΣΙΕΥΣΗ ΕΡΓΑΣΙΑ: MULTI-DOCUMENT SUMMARIZATIONS.
AlphaSort: A Cache-Sensitive Parallel External Sort Chris Nyberg, Tom Barclay, Zarka Cvetanovic, Jim Gray and David Lomet.
Διδακτική της Πληροφορικής ΗΥ302 Εργασία :Παρουσίαση σχολικού βιβλίου Γ’ Λυκείου Τεχνολογικής Κατεύθυνσης «Ανάπτυξη εφαρμογών σε προγραμματιστικό περιβάλλον»
Μοντέλα - Αλγόριθμοι – Ταξινόμηση Advanced Data Indexing (Προηγμένη ευρετηρίαση δεδομένων)
TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Ουρά Προτεραιότητας (priority queue) Δομή δεδομένων που υποστηρίζει.
ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ (ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ - ΣΥΝΑΡΤΗΣΕΙΣ) Καλλονιάτης Χρήστος Επίκουρος Καθηγητής Τμήμα Πολιτισμικής Τεχνολογίας.
Quicksort Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο.
Advanced Data Indexing (Προηγμένη ευρετηρίαση δεδομένων) Κατακερματισμός – Hashing (1 ο Μέρος)
ΗΥ150 – ΠρογραμματισμόςΚώστας Παναγιωτάκης ΗΥ-150 Προγραμματισμός Αναδρομή (1/2)
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ §3.7 ΤΑΞΙΝΟΜΗΣΗ
Ασυμπτωτικός Συμβολισμός
ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Διδάσκοντες:Στάθης Ζάχος Νίκος Παπασπύρου
ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Διδάσκοντες:Στάθης Ζάχος Νίκος Παπασπύρου
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Επεξεργασία Ερωτήσεων.
ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ Διδάσκοντες:Γιάννης Μαΐστρος Στάθης Ζάχος Νίκος Παπασπύρου
ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ Διδάσκοντες:Γιάννης Μαΐστρος Στάθης Ζάχος Νίκος Παπασπύρου
Ασκήσεις σε πίνακες ΗΥ-150b ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Μπουλουκάκης Γεώργιος Βοηθός ΗΥ-150b ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ.
Ενότητα 2.1 Αλγόριθμοι Ταξινόμησης O(n 2 ) & O(nlogn) Σχεδίαση & Ανάλυση Αλγορίθμων.
Αρχές επαγωγικής στατιστικής
ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ Τμήμα ΜΑΘΗΜΑΤΙΚΩΝ – ΠΡΑΚΤΙΚΗ ΑΣΚΗΣΗ ΣΕ ΣΧΟΛΕΙΟ ΤΗΣ ΔΕΥΤΕΡΟΒΑΘΜΙΑΣ ΕΚΠΑΙΔΕΥΣΗΣ Καλαμάρα Αγγελική
Δομές δεδομένων και Αλγόριθμοι Κεφάλαιο 3. Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον Δεδομένα Δεδομένα (data) Δεδομένα (data) –αφαιρετική αναπαράσταση.
 Στόχος της παρουσίασης αυτής είναι η εξοικείωση με τον Ηλεκτρονικό Κατάλογο της Βιβλιοθήκης προκειμένου να αναζητήσουμε ένα τεκμήριο από τη συλλογή.
ΔΥΑΔΙΚΗ ΑΝΑΖΗΤΗΣΗ & ΤΑΞΙΝΟΜΗΣΗ ΜΕ ΣΥΓΧΩΝΕΥΣΗ. Δυαδική αναζήτηση (Binary search) ΔΕΔΟΜΕΝΟ: ένα μεγάλο αρχείο που περιέχει τιμές z [0,1,…,n-1] ταξινομημένες.
Ασκήσεις WEKA Δέντρα αποφάσεων.
Αλγόριθμοι Ταξινόμησης – Μέρος 4
ΑΛΓΟΡΙΘΜΟΣ ΠΡΟΒΛΗΜΑ ΑΛΓΟΡΙΘΜΟΣ ΛΥΣΗ
Prolog Επεξεργασία και Αναπαράσταση Γνώσης Εισαγωγή
Διδάσκων: Δρ. Τσίντζα Παναγιώτα
Διάλεξη 15: O αλγόριθμος SIMPLE
Αρχεσ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Η/Υ ΤΑξη Β΄
12η Διάλεξη Διάσχιση Δέντρων και Ουρές Προτεραιότητας Ε. Μαρκάκης
ΓΕΜΙΣΜΑ ΜΟΝΟΔΙΑΣΤΑΤΟΥ ΠΙΝΑΚΑ (Άσκηση 1)
Γλώσσα προγραμματισμού C++
ΤΕΙ ΚΕΝΤΡΙΚΗΣ ΜΑΚΕΔΟΝΙΑΣ Τμήμα Μηχανικών Πληροφορικής ΤΕ
Μονοδιάστατοι πίνακες
Σειριακή ή Γραμμική Αναζήτηση 1.Μοναδικό Κλειδί (key)
Η τακτοποίηση των κόμβων μίας δομής με μία ιδιαίτερη σειρά είναι μία πολύ σημαντική λειτουργία που ονομάζεται ταξινόμηση (sorting) ή διάταξη (ordering).
Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον ΑΕΠΠ
Ουρά Προτεραιότητας (priority queue)
Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον ΑΕΠΠ
ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ
ΗΥ-150 Προγραμματισμός Αναδρομή (1/2).
Ερωτήματα Επιλογής σε ACCESS
Δομές Δεδομένων και Τεχνικές Προγραμματισμού
Εξωτερική Αναζήτηση Ιεραρχία Μνήμης Υπολογιστή Εξωτερική Μνήμη
Δυναμικός Κατακερματισμός
Δομές Δεδομένων (Data Structures)
Μεταγράφημα παρουσίασης:

Αλγόριθμοι Ταξινόμησης – Μέρος 4 Μανόλης Κουμπαράκης Δομές Δεδομένων και Τεχνικές Προγραμματισμού 1

Μέθοδοι Ταξινόμησης Βασισμένοι σε Συγκρίσεις Κλειδιών Δομές Δεδομένων και Τεχνικές Προγραμματισμού 2

Μέθοδοι Ταξινόμησης Βασισμένοι σε Συγκρίσεις Κλειδιών Δομές Δεδομένων και Τεχνικές Προγραμματισμού 3

Ένα Κάτω Φράγμα για τους Αλγόριθμους Ταξινόμησης Δομές Δεδομένων και Τεχνικές Προγραμματισμού 4

Δέντρα Αποφάσεων Δομές Δεδομένων και Τεχνικές Προγραμματισμού 5

Δέντρα Αποφάσεων Δομές Δεδομένων και Τεχνικές Προγραμματισμού 6

Παράδειγμα Δέντρου Αποφάσεων Δομές Δεδομένων και Τεχνικές Προγραμματισμού 7 a < b a < c b < c a < c b < c a, b, c a, c, b c, a, b b, a, cb, c, a c, b, a yes no yes no

Δέντρα Αποφάσεων Δομές Δεδομένων και Τεχνικές Προγραμματισμού 8

Πρόταση Δομές Δεδομένων και Τεχνικές Προγραμματισμού 9

10

Παράδειγμα Δομές Δεδομένων και Τεχνικές Προγραμματισμού 11

Απόδειξη του Κάτω Φράγματος Δομές Δεδομένων και Τεχνικές Προγραμματισμού 12

Απόδειξη του Κάτω Φράγματος Δομές Δεδομένων και Τεχνικές Προγραμματισμού 13

Ταξινόμηση σε Γραμμικό Χρόνο Δομές δεδομένων και Τεχνικές Προγραμματισμού 14

Ταξινόμηση σε Γραμμικό Χρόνο Υπάρχουν αλγόριθμοι ταξινόμησης που τρέχουν σε γραμμικό χρόνο αλλά είναι κατάλληλοι μόνο για πίνακες με συγκεκριμένους τύπους στοιχείων. Θα παρουσιάσουμε τους αλγόριθμους bucket-sort και radix-sort. Δομές δεδομένων και Τεχνικές Προγραμματισμού 15

Ο Αλγόριθμος bucket-sort Δομές δεδομένων και Τεχνικές Προγραμματισμού 16

Ο Αλγόριθμος bucket-sort Δομές δεδομένων και Τεχνικές Προγραμματισμού 17

Ο Αλγόριθμος bucket-sort Μια σημαντική ιδιότητα του αλγόριθμου bucket-sort είναι ότι λειτουργεί σωστά ακόμα και αν υπάρχουν πολλά στοιχεία με την ίδια τιμή κλειδιού. Δομές Δεδομένων και Τεχνικές Προγραμματισμού 18

Ευσταθείς Μέθοδοι Ταξινόμησης Δομές δεδομένων και Τεχνικές Προγραμματισμού 19

Παράδειγμα Θεωρήστε τις παρακάτω εγγραφές που περιέχουν επώνυμα φοιτητών και έτος φοίτησης στο πανεπιστήμιο. Υποθέστε ότι αρχικά ταξινομούνται ως προς το επώνυμο: Δομές δεδομένων και Τεχνικές Προγραμματισμού 20 ΕπώνυμοΈτος φοίτησης Adams1 Black2 Brown4 Jackson2 Jones4 Smith1 Thompson4 Washington2 White3 Wilson3

Παράδειγμα Μια ασταθής ταξινόμηση ως προς το έτος φοίτησης είναι η παρακάτω: Δομές δεδομένων και Τεχνικές Προγραμματισμού 21 ΕπώνυμοΈτος φοίτησης Adams1 Smith1 Washington2 Jackson2 Black2 White3 Wilson3 Thompson4 Brown4 Jones4

Παράδειγμα Μια ευσταθής ταξινόμηση ως προς το έτος φοίτησης είναι η παρακάτω: Δομές δεδομένων και Τεχνικές Προγραμματισμού 22 ΕπώνυμοΈτος φοίτησης Adams1 Smith1 Black2 Jackson2 Washington2 White3 Wilson3 Brown4 Jones4 Thompson4

Ερωτήσεις Ποιοι από τους αλγόριθμους ταξινόμησης που έχουμε παρουσιάσει είναι ευσταθείς; Είναι ο αλγόριθμος bucket-sort ευσταθής; Δομές δεδομένων και Τεχνικές Προγραμματισμού 23

Bucket-sort Δομές δεδομένων και Τεχνικές Προγραμματισμού 24

Λεξικογραφική Διάταξη Δομές δεδομένων και Τεχνικές Προγραμματισμού 25

Ο Αλγόριθμος Ταξινόμησης Βάσης Δομές δεδομένων και Τεχνικές Προγραμματισμού 26

Παράδειγμα Δομές δεδομένων και Τεχνικές Προγραμματισμού 27

Παράδειγμα Δομές δεδομένων και Τεχνικές Προγραμματισμού 28

Ο Αλγόριθμος Ταξινόμησης Βάσης Δομές δεδομένων και Τεχνικές Προγραμματισμού 29

Αλγόριθμοι Ταξινόμησης: Σύνοψη Αν θέλουμε να ταξινομήσουμε μικρούς πίνακες (π.χ., με 100 στοιχεία) οι στοιχειώδεις αλγόριθμοι που παρουσιάσαμε είναι κατάλληλοι. Αν ο δοσμένος πίνακας είναι σχεδόν ταξινομημένος, η ταξινόμηση με εισαγωγή είναι η προτιμητέα. Αν τα στοιχεία του πίνακα είναι μεγάλα και η αντιμετάθεση τους κοστίζει, τότε η ταξινόμηση με επιλογή είναι η κατάλληλη. Δομές δεδομένων και Τεχνικές Προγραμματισμού 30

Αλγόριθμοι Ταξινόμησης: Σύνοψη Ο αλγόριθμος ταξινόμησης με συγχώνευση είναι κατάλληλος για περιπτώσεις που τα δεδομένα μας δεν χωράνε στην κύρια μνήμη και είναι αποθηκευμένα στο δίσκο. Για δεδομένα που χωράνε στην κύρια μνήμη, ο αλγόριθμοι quicksort και heapsort είναι προτιμότεροι του mergesort επειδή ταξινομούν τα δεδομένα επιτόπου. Μεταξύ των quicksort και heapsort, πειραματικές μελέτες έχουν δείξει ότι υπερτερεί ο quicksort τις περισσότερες φορές. Οπότε ο quicksort είναι ένας εξαιρετικός αλγόριθμος γενικής χρήσης για δεδομένα που βρίσκονται στην κύρια μνήμη. Γι αυτό χρησιμοποιείται από την συνάρτηση βιβλιοθήκης qsort της C. Δομές δεδομένων και Τεχνικές Προγραμματισμού 31

Αλγόριθμοι Ταξινόμησης: Σύνοψη Δομές δεδομένων και Τεχνικές Προγραμματισμού 32

Αλγόριθμοι Ταξινόμησης: Σύνοψη Δομές δεδομένων και Τεχνικές Προγραμματισμού 33

Μελέτη M.T. Goodrich, R. Tamassia and D. Mount. Data Structures and Algorithms in C++. 2 nd edition, – Sections , and M.T. Goodrich, R. Tamassia. Δομές Δεδομένων και Αλγόριθμοι σε Java. 5 η έκδοση. Εκδόσεις Δίαυλος. – Κεφ , και Δομές δεδομένων και Τεχνικές Προγραμματισμού 34