Εισ. Στην ΠΛΗΡΟΦΟΡΙΚΗ. Διάλεξη 7 η. Βασίλης Στεφανής

Σχετικά έγγραφα
Αλγόριθμοι Ταξινόμησης Bubble Sort Quick Sort. Αντρέας Δημοσθένους Καθηγητής Πληροφορικής Ολυμπιάδα 2012

Ταξινόμηση. Σαλτογιάννη Αθανασία

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

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

ΔΥΑΔΙΚΗ ΑΝΑΖΗΤΗΣΗ & ΤΑΞΙΝΟΜΗΣΗ ΜΕ ΣΥΓΧΩΝΕΥΣΗ

Ταξινόμηση με συγχώνευση Merge Sort

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

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Φ Ρ Ο Ν Τ Ι Σ Τ Η Ρ Ι Ο 1 : ΤΑΞΙΝΟΜΗΣΗ Δ Ρ Ι Τ Σ Α Σ Η Λ Ι Α Σ Υ Π Ο Ψ Η Φ Ι Ο Σ Δ Ι Δ Α Κ Τ Ο Ρ Α Σ

Ταξινόμηση: Εισαγωγικά. Ταξινόμηση (Sor ng) Αλγόριθμοι Απλής Ταξινόμησης. Βασικά Βήματα των Αλγορίθμων

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

Πληροφορική 2. Αλγόριθμοι

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 8 Ο. Ταξινόμηση και Αναζήτηση Συναρτήσεις χειρισμού οθόνης ΣΙΝΑΤΚΑΣ Ι. ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

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

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

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

Εργαστηριακή Άσκηση 1

Προγραµµατιστικές Τεχνικές

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

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

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

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

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

Merge Sort (Ταξινόμηση με συγχώνευση) 6/14/2007 3:04 AM Merge Sort 1

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 8: Αναζήτηση και ταξινόμηση

1η Σειρά Γραπτών Ασκήσεων

Τι είναι αλγόριθμος; Υποπρογράμματα (υποαλγόριθμοι) Βασικές αλγοριθμικές δομές

Ταξινόμηση κάδου και ταξινόμηση Ρίζας Bucket-Sort και Radix-Sort

Ελαφρύτερος και βαρύτερος Αλγόριθμοι ταξινόμησης

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

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

Θέματα Προγραμματισμού Η/Υ

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

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Πληροφορική II. Ενότητα 2 : Αλγόριθμοι. Δρ. Γκόγκος Χρήστος

Προγραμματιστικές Τεχνικές

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

Αλγόριθμοι Ταξινόμησης Μέρος 1

Δοµές Δεδοµένων. 11η Διάλεξη Ταξινόµηση Quicksort και Ιδιότητες Δέντρων. Ε. Μαρκάκης

Δοµές Δεδοµένων. 9η Διάλεξη Ταξινόµηση - Στοιχειώδεις µέθοδοι. Ε. Μαρκάκης

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

Πληροφορική ΙΙ Ενότητα 1

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων

Αλγόριθμοι και πολυπλοκότητα Διαίρει και Κυρίευε

Διάλεξη 17η: Ταξινόμηση και Αναζήτηση

Ταχεία Ταξινόμηση Quick-Sort

ΜΥΥ105: Εισαγωγή στον Προγραμματισμό. Αναζήτηση και Ταξινόμηση Χειμερινό Εξάμηνο 2016

Διάλεξη 19: Αλγόριθμοι ΤαξινόμησηςII. Διδάσκων: Παναγιώτης Ανδρέου

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

Κεφάλαιο 4. Διαίρει και Βασίλευε (Divide and Conquer) Παύλος Εφραιμίδης V1.1,

Προγραμματισμός Υπολογιστών Τάξη Γ Αθανασιάδης Χρήστος ΠΕ19 ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Ταξινόµηση Quicksort Κεφάλαιο 7. Ε. Μαρκάκης Επίκουρος Καθηγητής

3 ΑΝΑ ΡΟΜΗ ΑΝΑΖΗΤΗΣΗ - ΤΑΞΙΝΟΜΗΣΗ. n! = 1*2*3*..(n-1)*n. n! = 1 αν n = 0, = n*(n-1)! αν n > ΑΝΑ ΡΟΜΗ Εισαγωγή

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

2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ

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

Προχωρημένες έννοιες προγραμματισμού σε C

Bubble Hack Οπτικοποίηση του αλγορίθμου ταξινόμησης Bubble Sort στο Scratch

Επαναληπτικές Διαδικασίες

ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 4. Παραδείγματα Ανάλυσης Πολυπλοκότητας Ανάλυση Αναδρομικών Αλγόριθμων

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

Η εφαρµογή xsortlab. Οπτικός τρόπος ταξινόµησης

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

Σχεδίαση Αλγορίθμων -Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο

int Α[] = {4, 16, 22, 12, 9, 15, 10}; { 4, 9, 10, 12, 15, 16, 22 } Α[0]=4, Α[1]=9, Α[2]=10 { 4, 16,22, 12, 9, 15, 10} { 4, 12, 16, 22, 9, 15,16, 22 }

Ενότητα 3: ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ

Εισαγωγή στην Επεξεργασία Ερωτήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Πίνακες. Ι.Ε.Κ ΓΛΥΦΑΔΑΣ Τεχνικός Τεχνολογίας Internet Αλγοριθμική Ι (Ε) Σχολ. Ετος A Εξάμηνο

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Ταξινόµηση Mergesort Κεφάλαιο 8. Ε. Μαρκάκης Επίκουρος Καθηγητής

ΘΕΜΑ Α. Μονάδες 10 Α2.

Αλγόριθμοι Ταξινόμησης Μέρος 2

ΟΜΟΣΠΟΝΔΙΑ ΕΚΠΑΙΔΕΥΤΙΚΩΝ ΦΡΟΝΤΙΣΤΩΝ ΕΛΛΑΔΟΣ (Ο.Ε.Φ.Ε.) ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ 2019 Β ΦΑΣΗ Γ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ

Εισαγωγή στην επιστήμη των υπολογιστών. Λογισμικό Υπολογιστών Κεφάλαιο 8ο Αλγόριθμοι

Ενδεικτικές Ερωτήσεις Θεωρίας

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

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

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

Διάλεξη 04: Παραδείγματα Ανάλυσης

Ακρότατα πίνακα, χωρίς min, max, μόνο με pos

Διάλεξη 04: Παραδείγματα Ανάλυσης Πολυπλοκότητας/Ανάλυση Αναδρομικών Αλγόριθμων

ΠΡΟΣ: Τηλέφωνο: Ινστιτούτο Εκπαιδευτικής Πολιτικής ΚΟΙΝ.:

Προγραμματιστικές Τεχνικές

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ: ΕΞΙ (6)

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

Εισαγωγή στην Επεξεργασία Ερωτήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

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

ΜΥΥ105: Εισαγωγή στον Προγραµµατισµό. Αναζήτηση και Ταξινόµηση Χειµερινό Εξάµηνο 2014

auth Αλγόριθμοι - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΠΑΝΕΛΛΑΔΙΚΩΝ ΣΧΟΛΙΚΟΥ ΕΤΟΥΣ

φροντιστήρια Θέματα Ανάπτυξης Εφαρμογών σε Προγραμματιστικό Περιβάλλον Γ λυκείου Προσανατολισμός Σπουδών Οικονομίας και Πληροφορικής

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. 1 ο ΚΕΦΑΛΑΙΟ

ΤΑΞΗ Α - ΜΑΘΗΜΑΤΙΚΑ ΘΕΜΑΤΑ ΘΕΩΡΙΑΣ (ΓΙΑ ΤΗΝ ΤΕΛΙΚΗ ΕΠΑΝΑΛΗΨΗ)

ΠΑΝΕΛΛΑΔΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΗΜΕΡΗΣΙΩΝ ΕΠΑΛ (ΟΜΑΔΑ Α ) ΚΑΙ ΜΑΘΗΜΑΤΩΝ ΕΙΔΙΚΟΤΗΤΑΣ ΗΜΕΡΗΣΙΩΝ ΕΠΑΛ (ΟΜΑΔΑ Α ΚΑΙ Β ) ΤΡΙΤΗ 13 ΙΟΥΝΙΟΥ 2017

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΣΧΟΛΙΚΟΥ ΕΤΟΥΣ

Σύνοψη Προηγούμενου. Πίνακες (Arrays) Πίνακες (Arrays): Βασικές Λειτουργίες. Πίνακες (Arrays) Ορέστης Τελέλης

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

Δοµές Δεδοµένων. 10η Διάλεξη Ταξινόµηση. E. Μαρκάκης

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

Transcript:

Εισ. Στην ΠΛΗΡΟΦΟΡΙΚΗ Διάλεξη 7 η Βασίλης Στεφανής

Αλγόριθμοι ταξινόμησης Στην προηγούμενη διάλεξη είδαμε: Binary search Λειτουργεί μόνο σε ταξινομημένους πίνακες Πώς τους ταξινομούμε? Πολλοί τρόποι. Ενδεικτικά: Ταξινόμηση με εισαγωγή (insertion sort) Ταξινόμηση φυσαλίδας (bubble sort) Γρήγορη ταξινόμηση (quick sort) Ταξινόμηση με συγχώνευση (Merge sort)

Insertion sort Ταξινόμηση με εισαγωγή Είναι ο τρόπος με τον όποιο θα ταξινομούσαμε και εμείς τα χαρτιά μιας τράπουλας Είναι απλός και υλοποιείται γρήγορα Δε χρειάζεται extra χώρο στη μνήμη για την ταξινόμηση Λειτουργεί πολύ καλά, αν τα στοιχεία είναι σχεδόν ταξινομημένα

Insertion sort Τρόπος λειτουργίας Βάζω το πρώτο στοιχείο από τον πίνακα εισόδου ως πρώτο στοιχείο στον πίνακα εξόδου Διαβάζω ένα προς ένα τα στοιχεία από τον πίνακα εισόδου και τα τοποθετώ στη σωστή θέση στον πίνακα εξόδου, με διαδοχικές συγκρίσεις από το μεγαλύτερο στο μικρότερο στοιχείο. Όταν βρεθεί η σωστή θέση του κάθε στοιχείου, μετακινώ προς τα δεξιά τα μεγαλύτερα στοιχεία Ο αλγόριθμος τερματίζει όταν έχουν διαβαστεί όλα τα στοιχεία από τον πίνακα εισόδου

Insertion sort - Άσκηση Να ταξινομηθεί με τον αλγόριθμο insertion sort ο πίνακας Α = [3, 7, 4, 9, 5, 2, 6, 1]. Για κάθε βήμα να γράψετε τον προσωρινό πίνακα εξόδου που δημιουργείται καθώς και τον αριθμό των συγκρίσεων που απαιτούνται.

Bubble sort Ταξινόμηση φυσαλίδας To όνομά του προέρχεται από τον τρόπο που λειτουργεί Οι μεγάλοι αριθμοί προς το τέλος της λίστας, σαν φυσαλίδες σε υγρό. Έχει μέτρια απόδοση Μεγάλος αριθμός συγκρίσεων Μεγάλος αριθμός αναγνώσεων εγγραφών Η κύρια χρήση του είναι εκπαιδευτική

Bubble Sort Τρόπος λειτουργίας Ξεκινώντας από την αρχή της λίστας, συγκρίνουμε κάθε γειτονικό ζεύγος. Αλλάζουμε τις τιμές αν δεν είναι στην σωστή σειρά. Σε κάθε επανάληψη του αλγόριθμου μια λιγότερη τιμή χρειάζεται να ελεγχθεί. Ο αλγόριθμος τερματίζει όταν δεν υπάρχουν άλλα αντικείμενα να συγκριθούν και να γίνουν εναλλαγές.

Bubble Sort - Άσκηση Να ταξινομηθεί με τον αλγόριθμο bubble sort ο πίνακας Α = [3, 7, 4, 9, 5, 2, 6, 1]. Για κάθε βήμα να γράψετε τον προσωρινό πίνακα εξόδου καθώς και τον αριθμό των συγκρίσεων που απαιτούνται.

Quick Sort Γρήγορη ταξινόμηση Κατατάσσεται στην κατηγορία του «Διαίρει και βασίλευε» Είναι όντως αρκετά γρήγορος Δεν έχει μόνο το όνομα Υπάρχει ενσωματωμένος σε: Unix/ Linix C, C++ Java

Quick Sort Τρόπος λειτουργίας Aν ο πίνακας έχει 0 ή 1 στοιχεία δεν κάνουμε τίποτα (είναι ήδη ταξινομημένος) Διαφορετικά, αναδρομικά εκτελούμε: Επιλέγουμε ένα στοιχείο p (το οποίο ονομάζουμε pivot - άξονα) και το αφαιρούμε από την πίνακα/λίστα εισόδου. Χωρίζουμε τον πίνακα/λίστα σε 2 μέρη: S1 και S2, όπου το S1 θα περιέχει όλα τα στοιχεία που είναι μικρότερα από το p και το S2 όπου περιέχονται όλα τα υπόλοιπα στοιχεία τα οποία είναι μεγαλύτερα ή ίσα με p. Καλούμε τον αλγόριθμο αναδρομικά στο S1, παίρνουμε απάντηση στο T1 και στο S2 και παίρνουμε απάντηση στο T2. Επιστρέφουμε τον πίνακα [T1, p, T2] Με πιο απλά λόγια: http://www.youtube.com/watch?v=3san3ukkhgg

Quick Sort - Άσκηση Να ταξινομηθεί με τον αλγόριθμο quick sort ο πίνακας Α = [5, 7, 4, 9, 3, 2, 6, 1]. Να φανούν αναλυτικά όλα τα βήματα του αλγορίθμου.

Merge Sort Ταξινόμηση με συγχώνευση Γρηγορότερος από τους άλλους 3 που παρουσιάσαμε Stable sort Διαίρει και βασίλευε Εφευρέτης John von Neumann http://en.wikipedia.org/wiki/john_von_neumann

Merge Sort Τρόπος λειτουργίας Η ταξινόμηση με συγχώνευση λειτουργεί ως εξής: Διαιρείται η μη ταξινομημένη λίστα σε n υπολίστες, με την καθεμιά να περιέχει από 1 στοιχείο (η λίστα του ενός στοιχείου θεωρείται ταξινομημένη). Επαναληπτικά, συγχωνεύονται οι υπολίστες, ώστε να παραχθούν νέες υπολίστες, μέχρι να απομείνει 1 μόνον υπολίστα (η οποία θα είναι ταξινομημένη.) Η συγχώνευση κάθε λίστας γίνεται από αριστερά προς τα δεξιά!

Merge Sort - Άσκηση Να ταξινομηθεί με τον αλγόριθμο merge sort ο πίνακας Α = [5, 7, 4, 9, 3, 2, 6, 1]. Να φανούν αναλυτικά όλα τα βήματα του αλγορίθμου.

Τέλος παρουσίασης Ερωτήσεις? vstefanis@teimes.gr