ΑΛΓΟΡΙΘΜΟΙ ΜΕ C. ΝΙΚΟΛΑΟΣ ΣΑΜΑΡΑΣ Αναπληρωτής Καθηγητής. CMOR Lab. Computational Methodologies and Operations Research

Σχετικά έγγραφα
ΑΛΓΟΡΙΘΜΟΙ ΜΕ C. ΝΙΚΟΛΑΟΣ ΣΑΜΑΡΑΣ Αναπληρωτής Καθηγητής. CMOR Lab. Computational Methodologies and Operations Research

ΑΛΓΟΡΙΘΜΟΙ ΜΕ C. ΝΙΚΟΛΑΟΣ ΣΑΜΑΡΑΣ Αναπληρωτής Καθηγητής. CMOR Lab. Computational Methodologies and Operations Research

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

ΑΛΓΟΡΙΘΜΟΙ ΜΕ C. ΝΙΚΟΛΑΟΣ ΣΑΜΑΡΑΣ Αναπληρωτής Καθηγητής. CMOR Lab. Computational Methodologies and Operations Research

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

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ.

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

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

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

Ταξινόμηση. Ταξινόμηση ευθείας ανταλλαγής (Φυσαλίδα) 1) Να ταξινομηθεί ο πίνακας Α[Ν] σε αύξουσα σειρά με τη μέθοδο της φυσαλίδας.

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

Προγραμματισμός Ι (ΗΥ120)

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

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

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

Επιµέλεια Θοδωρής Πιερράτος

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

Πληροφορική 2. Δομές δεδομένων και αρχείων

Ηλεκτρονικοί Υπολογιστές

Προβλήματα, αλγόριθμοι, ψευδοκώδικας

Έστω ένας πίνακας με όνομα Α δέκα θέσεων : 1 η 2 η 3 η 4 η 5 η 6 η 7 η 8 η 9 η 10 η

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

Θεωρία Αλγόριθμοι Γραμμικής Βελτιστοποίησης 3/4/2012. Lecture08 1

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

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

Πίνακες. 1 Πίνακες. 30 Μαρτίου 2014

Τμήμα Εφαρμοσμένης Πληροφορικής

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΘΕΩΡΗΤΙΚΗ ΑΣΚΗΣΗ 2 ΛΥΣΕΙΣ Γραμμικές Δομές Δεδομένων, Ταξινόμηση

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

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

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

Δείκτες & Πίνακες Δείκτες, Πίνακες

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 }

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

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

Ημερομηνία: 1/03/15 Διάρκεια διαγωνίσματος: 180 Εξεταζόμενο μάθημα: Προγραμματισμός (Δομή Επανάληψης) Υπεύθυνος καθηγητής: Παπαδόπουλος Πέτρος

Επεξεργασία Ερωτήσεων

Επεξεργασία Ερωτήσεων

9. Συστολικές Συστοιχίες Επεξεργαστών

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 9: ΒΑΣΙΚΕΣ ΤΕΧΝΙΚΕΣ ΣΧΕΔΙΑΣΜΟΥ ΚΑΙ ΑΝΑΛΥΣΗΣ ΑΛΓΟΡΙΘΜΩΝ ΕΞΙΣΟΡΡΟΠΗΣΗ, ΔΙΑΙΡΕΙ ΚΑΙ ΒΑΣΙΛΕΥΕ

Στόχοι και αντικείμενο ενότητας. Πέρασμα Πίνακα σε Συνάρτηση (συν.) Πέρασμα Πίνακα σε Συνάρτηση. #8.. Ειδικά Θέματα Αλγορίθμων

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

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο Κάθε δομή μπορεί να χρησιμοποιηθεί σε οποιοδήποτε πρόβλημα ή εφαρμογή

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

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Σηµείωση : Θεωρούµε ότι όλα τα ονόµατα µαθητών που ανήκουν στο ίδιο σχολείο είναι διαφορετικά µεταξύ τους, ενώ σε διαφορετικά σχολεία µπορεί να

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

Σκοπός. Εργαστήριο 6 Εντολές Επανάληψης

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

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

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

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

8. Η δημιουργία του εκτελέσιμου προγράμματος γίνεται μόνο όταν το πηγαίο πρόγραμμα δεν περιέχει συντακτικά λάθη.

Ένωση και Συγχώνευση πινάκων Να γράψετε πρόγραμμα που θα διαβάζει τα στοιχεία δύο πινάκων Α[350] και Β[150] με ονόματα και τελικά θα δημιουργεί έναν

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

Ταξινόμηση. Ταξινόμηση ευθείας ανταλλαγής (Φυσαλίδα) 1) Να ταξινομηθεί ο πίνακας Α[Ν] σε αύξουσα σειρά με τη μέθοδο της φυσαλίδας.

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

ΘΕΜΑ 1 ο. Στήλη Β Προτάσεις. β. Ο βρόχος επανάληψης τερµατίζεται, όταν η συνθήκη είναι αληθής. όταν η συνθήκη είναι ψευδής.

Αλγόριθμοι Αναζήτησης. (AeppAcademy.com)

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

Α2. Να γράψετε καθένα από τους αριθμούς της Στήλης Α και δίπλα ένα γράμμα της Στήλης Β, ώστε να προκύπτει η σωστή αντιστοίχιση.

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

Δημιουργία Δυαδικών Δέντρων Αναζήτησης

Να το ξαναγράψετε χρησιμοποιώντας αντί για την εντολή Για Τέλος_επανάληψης: α. την εντολή Όσο Τέλος_επανάληψης

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

Ψευδοκώδικας. November 7, 2011

Γ ΤΑΞΗ ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ÑÏÌÂÏÓ

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

Ενότητα 5: ΜΕΤΑΒΛΗΤΕΣ

ΠΕΡΙΕΧΟΜΕΝΑ. Μονοδιάστατοι πίνακες Πότε πρέπει να χρησιμοποιούνται πίνακες Πολυδιάστατοι πίνακες Τυπικές επεξεργασίες πινάκων

Εχουμε ήδη συναντήσει μονοδιάστατους πίνακες, οι οποίοι ορίζονται ως εξής:

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ Κεφάλαιο 3 ο. Πίνακες. Επικοινωνία:

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

Επίλυση Προβλημάτων με Χρωματισμό. Αλέξανδρος Γ. Συγκελάκης

ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΚΑΙ ΜΑΘΗΜΑΤΙΚΗ ΔΙΑΤΥΠΩΣΗ, Διαλ. 2. Ανωτάτη Σχολή Παιδαγωγικής και Τεχνολογικής Εκπαίδευσης 8/4/2017

Κατ οίκον Εργασία 2 Σκελετοί Λύσεων

Τρίτη, 1 Ιουνίου 2004 ΤΕΧΝΟΛΟΓΙΚΗ ΚΑΤΕΥΘΥΝΣΗ Γ ΛΥΚΕΙΟΥ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ

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

ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ. 1ο ΓΕΛ ΠΕΥΚΗΣ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ B' ΤΕΤΡΑΜΗΝΟΥ ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ

ΕΝΑΣ ΔΙΚΡΙΤΗΡΙΟΣ ΑΛΓΟΡΙΘΜΟΣ SIMPLEX

ΠΑΝΕΛΛΑΔΙΚΕΣ ΕΞΕΤΑΣΕΙΣ 2016 Α.Ε.Π.Π. Γ ΛΥΚΕΙΟΥ ΤΕΧΝΟΛΟΓΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ. Θέματα και Απαντήσεις

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

6. Αφού δημιουργήσετε ένα πίνακα 50 θέσεων με ονόματα μαθητών να τον ταξινομήσετε αλφαβητικά με την μέθοδο της φυσαλίδας

Μετατροπή δισδιάστατου σε μονοδιάσταστο και αντίστροφα Να γράψετε πρόγραμμα που: α. Να διαβάζει τα στοιχεία ενός πίνακα ακεραίων Α[40,25], με τον

ΕΝΔΕΙΚΤΙΚΕΣ ΑΠΑΝΤΗΣΕΙΣ ΘΕΜΑ Α Α1. 1 ΣΩΣΤΟ 2 ΛΑΘΟΣ 3 ΛΑΘΟΣ 4 ΛΑΘΟΣ 5 ΣΩΣΤΟ

ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ : Γ ΛΥΚΕΙΟΥ ΣΠΟΥΔΕΣ ΟΙΚΟΝΟΜΙΑΣ & ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΜΗΜΑ: Γ2-Γ3

Επεξεργασία Ερωτήσεων

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

12/3/2012. Εργαστήριο Αλγόριθμοι Γραμμικής Βελτιστοποίησης. Lab03 1. Διανυσματοποίηση Βρόχων. Αρχικοποίηση μητρών (preallocating)

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

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

ΘΕΜΑΤΑ ΠΡΟΚΑΤΑΡΤΙΚΗΣ ΦΑΣΗΣ 7 ου ΠΑΝΕΛΛΗΝΙΟΥ ΔΙΑΓΩΝΙΣΜΟΥ ΠΛΗΡΟΦΟΡΙΚΗΣ 1995 ΘΕΜΑΤΑ ΓΥΜΝΑΣΙΟΥ

Στήλη Β Προτάσεις. 1. Όσο συνθήκη επανάλαβε εντολές Τέλος_επανάληψης 2. Αρχή_επανάληψης εντολές Μέχρις_ότου συνθήκη

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

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

k 1 j 1 A[k] i A[...]... A[...]... k A4.

ΑΡΧΗ 2ΗΣ ΣΕΛΙΔΑΣ Γ Α... Β

Transcript:

ΑΛΓΟΡΙΘΜΟΙ ΜΕ C ΝΙΚΟΛΑΟΣ ΣΑΜΑΡΑΣ Αναπληρωτής Καθηγητής CMOR Lab Computational Methodologies and Operations Research

Συγχώνευση διανυσμάτων (1) Παράδειγμα. Δίνονται δυο ταξινομημένα κατά αύξουσα τάξη διανύσματα Α και Β με n και m στοιχεία αντίστοιχα. Να γραφεί αλγόριθμος ταξινόμησης του C = [A B] 1 2 3 Λύση Αλγόριθμος: merge1 Δεδομένα: A, B, n, m Αποτελέσματα: C C A για i από 1 μέχρι m C insert(c, B(i)) AN n > m 2

Συγχώνευση διανυσμάτων (2) Έστω Α = [10 14 22 36 42 56], n=6 και Β= [12 18 26 40 52], m=5. Θέτουμε C=A= [10 14 22 36 42 56]. Επανάληψη 1 η (i=1). C insert(c, B(1)=12). Νέο C= [10 12 14 22 36 42 56]. Επανάληψη 2 η (i=2). C insert(c, B(2)=18). Νέο C= [10 12 14 18 22 36 42 56]. Επανάληψη 3 η (i=3). C insert(c, B(3)=26). Νέο C= [10 12 14 18 22 26 36 42 56]. 3

Συγχώνευση διανυσμάτων (3) Επανάληψη 4 η (i=4). C insert(c, B(4)=40). Νέο C= [10 12 14 18 22 26 36 40 42 56]. Επανάληψη 5 η (i=5). C insert(c, B(5)=52). Νέο C= [10 12 14 18 22 26 36 40 42 52 56]. 4

Quiz [5] Exhibition Planning Ένα μουσείο έχει έναν εκθεσιακό χώρο ο οποίος αποτελείται από 16 δωμάτια. Η κάτοψη του ορόφου με τα δωμάτια φαίνεται στο επόμενο σχήμα. Υπάρχει μια πόρτα μεταξύ δυο διαδοχικών δωματίων οριζόντια και κάθετα. Επιπρόσθετα, κάθε βορινό και νότιο δωμάτιο έχει μια πόρτα στην εξωτερική πλευρά του. Η διοίκηση του μουσείου θέλει να οργανώσει μια νέα έκθεση στην οποία πρέπει να συμμετέχουν και τα 16 δωμάτια. Πρέπει λοιπόν να σχεδιαστεί μια διαδρομή όπου οι επισκέπτες πρέπει να μπαίνουν από ένα βορινό δωμάτιο, να επισκέπτονται όλα τα υπόλοιπα μόνο μια φορά και να εξέρχονται του μουσείου από ένα νότιο δωμάτιο. Τέλος, η διοίκηση του μουσείου θέλει να έχει όσο γίνεται λιγότερες πόρτες ανοικτές. (a) Ποιος είναι ο ελάχιστος αριθμός πορτών οι οποίες πρέπει να είναι ανοικτές (μαζί με τις πόρτες εισόδου/εξόδου)? (b) Ποιες πόρτες εισόδου και εξόδου πρέπει να είναι ανοικτές για την έκθεση? (πόσες είναι όλες οι πιθανές διαδρομές που μπορούν να σχεδιαστούν?) 5

Quiz [5] Κάτοψη ορόφου μουσείου 6

Quiz [5] 7

Αλγόριθμοι Ταξινόμησης (1) Ταξινόμηση: Πιθανότατα το περισσότερο χρησιμοποιούμενο πρόβλημα της πληροφορικής. Το πρόβλημα: Δίνεται διάνυσμα ταξινομηθεί (κατά αύξουσα τάξη). Τ =[t 1 t 2... t n ] καιζητείταινα Τ ταξινομημένο κατά αύξουσα (φθίνουσα ) τάξη t 1 t 2 t 3... t n 1 t n,(t 1 t 2 t 3... t n 1 t n ) Κριτήρια αποδοτικότητας μιας μεθόδου ταξινόμησης αποτελούν ο αριθμός των συγκρίσεων που απαιτούνται και ο αριθμός των μετακινήσεων που γίνονται προκειμένου να επιτευχθεί η ταξινόμηση. 8

Αλγόριθμοι Ταξινόμησης (2) Παράδειγμα: Ταξινόμηση ακεραίων 9

Αλγόριθμοι Ταξινόμησης (3) Eσωτερική ταξινόμηση. H μνήμη του υπολογιστή είναι περιορισμένη με αποτέλεσμα οι αλγόριθμοι να χρησιμοποιούν μόνο το διάνυσμα προς ταξινόμηση και πιθανόν μερικές ακόμη μεταβλητές Εξωτερική ταξινόμηση. Οι αριθμοί προς ταξινόμηση συνδέονται με αντικείμενα, συνήθως μεγάλες εγγραφές με αποτέλεσμα οι μεταφορές τους από μια θέση σε άλλη να είναι πολύ χρονοβόρες. Υπολογίζεται S, του οποίου το S(j) = θέση j αντικειμένου μετά την ταξινόμηση. 10

Ταξινόμηση με Επιλογή (1) Επέλεξε το μικρότερο από τα n στοιχεία του Τ και ενάλλαξέ το με το πρώτο, δηλ. το Τ(1). Από τα στοιχεία Τ(2), Τ(3),, Τ(n) επέλεξε το μικρότερο και ενάλλαξέ το με το Τ(2), κ.ο.κ 1 2 3 4 5 6 Αλγόριθμος: min1 Δεδομένα: T, n Αποτελέσματα: min, index min Τ(1) index 1 για i από 2 μέχρι n αν Τ(i) < min min T(i) index i Στον επόμενο ψευδοκώδικα χρησιμοποιείται ο min1 που υπολογίζει το ελάχιστο στοιχείο διανύσματος X και τη θέση του (index) στο Χ. 11

Ταξινόμηση με Επιλογή (2) 12

Ταξινόμηση με Επιλογή (3) Αλγόριθμος: selectsort Δεδομένα: T, n Αποτελέσματα: T 1 2 3 4 για i από 1 μέχρι n 1 [min, index] min1(t(i:n)) T(i+index 1) T(i) T(i) min index = θέση ελάχιστου στοιχείου στο Τ(i:n) (=X). Επειδή πλήθος (Τ(1:i 1))=i 1, το ελάχιστο στοιχείο X(index) του X=Τ(i:n) βρίσκεται στη θέση i+index 1 του διανύσματος Τ. 13

Ταξινόμηση με Επιλογή (4) Παράδειγμα. T=[10157254] i min index i + index - 1 εναλλαγή ιάνυσμα T [10 15 7 2 5 4] 1 2 4 4 T(1) T(4) [2 15 7 10 5 4] 2 4 5 6 T(2) T(6) [2 4 7 10 5 15] 3 5 3 5 T(3) T(5) [2 4 5 10 7 15] 4 7 2 5 T(4) T(5) [2 4 5 7 10 15] 5 10 1 5 T(5) T(5) [2 4 5 7 10 15 ] 14

Ταξινόμηση με Επιλογή (5) Άσκηση. Γράψτε τον κώδικα του αλγορίθμου selectsort ώστε να μη κάνει χρήση της συνάρτησης min1. Αλγόριθμος: min1 Δεδομένα: T, n Αποτελέσματα: min, index Αλγόριθμος: selectsort Δεδομένα: T, n Αποτελέσματα: T 1 2 3 4 5 6 min Τ(1) index 1 για i από 2 μέχρι n αν Τ(i) < min min T(i) index i 1 2 3 4 για i από 1 μέχρι n 1 [min, index] min1(t(i:n)) T(i+index 1) T(i) T(i) min 15

Ταξινόμηση με Επιλογή (6) Απάντηση για i από 1 μέχρι n 1 min T(i) index i για j από i+1 μέχρι n αν T(j)<min min T(j) index j T(index) T(i) T(i) min 16

Ταξινόμηση με Επιλογή (7) Πρόβλημα. Τροποποιήστε τον αλγόριθμο της ταξινόμησης με επιλογή έτσι ώστε να καταγράφονται και οι θέσεις των ταξινομημένων στοιχείων στο αρχικό μη ταξινομημένο διάνυσμα. Για παράδειγμα, αν Τ είναι το αρχικό διάνυσμα και Χ το τελικό διάνυσμα, που προκύπτει από την ταξινόμηση του Τ και είναι Χ(k) = Τ(m), τότε στο διάνυσμα των αρχικών θέσεων, theseis, θα είναι theseis(k) = m. 17

Ταξινόμηση με Επιλογή (8) Απάντηση theseis 1:n για i από 1 μέχρι n 1 min T(i) index i για j από i+1 μέχρι n αν T(j)<min min T(j) index j T(index) T(i) T(i) min temp theseis(i) theseis(i) theseis(index) theseis(index) temp 18

Ταξινόμηση με Εναλλαγή (1) Αποτελείται από στάδια: το πολύ n 1 Σε κάθε στάδιο ελέγχεται, αν το τρέχον διάνυσμα είναι ταξινομημένο, δηλαδή αν είναι: Τ(j) T(j+1), j = 1, 2, n 1 Αν πράγματι είναι, οι υπολογισμοί σταματούν. Αν δεν είναι, τότε κατά τη διάρκεια του σταδίου και για όλα τα j για τα οποία ισχύει: Τ(j) > T(j + 1), εναλλαγή(τ(j), Τ(j + 1)) 19

Ταξινόμηση με Εναλλαγή (2) 20

Ταξινόμηση με Εναλλαγή (3) Σημαντική παρατήρηση. Στο τέλος του σταδίου k τα τελευταία k στοιχεία είναι ταξινομημένα. Προέλευση ονοματολογίας: «ταξινόμηση με τη μέθοδο της φυσαλίδας bubblesort» Στον ψευδοκώδικα, όπου t=πλήθος εναλλαγών σε ένα στάδιο, (Αν t=0 STOP) i=δείκτης: τα στοιχεία i+1, i+2,..., n είναι ταξινομημένα 21

Ταξινόμηση με Εναλλαγή (4) Αλγόριθμος: bubblesort εδομένα: T, n Αποτελέσματα: T 1 2 3 4 5 6 7 8 9 i n t -1 όσο i 2 και t 0 t 0 για j από 1 μέχρι i-1 αν Τ(j) > T(j+1) [Τ(j), T(j+1)] εναλλαγή(t(j), T(j+1)) t t+1 i i 1 22

Ταξινόμηση με Εναλλαγή (5) Εφαρμογή : Τ =[102746], n=5 i = 5, t = 1, t = 0 j = 1, T = [ 2 10 7 4 6 ], t = 1 j = 2, T = [ 2 7 10 4 6 ], t = 2 j = 3, T = [ 2 7 4 10 6 ], t = 3 j = 4, T = [ 2 7 4 6 10 ], t = 4 i = 4, t = 0 j = 2, T = [ 2 4 7 6 10 ], t = 1 i = 3, j = 3, T = [ 2 4 6 7 10 ], t = 2 t = 0 i = 2 Demo: Bubblesort 23

Ταξινόμηση με Εναλλαγή (6) Άσκηση. Ο αλγόριθμος bubblesort που περιγράψαμε μπορεί να γίνει λίγο πιο αποτελεσματικός. Αν στην πρώτη επανάληψη του βρόχου του όσο η τελευταία εναλλαγή έγινε για την τιμή j=k, συμπεραίνουμε αμέσως ότι τα στοιχεία T(k+1), T(k+2),, T(n) είναι ταξινομημένα και ότι θα παραμείνουν στη θέση τους σε όλες τις επόμενες επαναλήψεις. Τροποποιήστε τον ψευδοκώδικα bubblesort ώστε να κάνει χρήση αυτής της βελτίωσης. 24

Ταξινόμηση με Εναλλαγή (7) Απάντηση. 1 2 3 4 5 6 7 8 9 10 i n t 1 όσο i 2 και t 0 t 0 για j από 1 μέχρι i 1 αν Τ(j) > T(j+1) [Τ(j), T(j+1)] εναλλαγή(t(j), T(j+1)) t t+1 k j i k 25

Πρόβλημα (για το σπίτι) Ένα παρόμοιο αποτέλεσμα με αυτό του προηγουμένου παραδείγματος ισχύει στην περίπτωση που ο αλγόριθμος bubblesort δουλεύει έτσι ώστε το μικρότερο στοιχείο να τοποθετείται όσο γίνεται αριστερά. Να αναπτυχθεί ψευδοκώδικας ο οποίος να συμπεριλαμβάνει εναλλακτικά τις βελτιώσεις αυτού του προβλήματος και του προηγούμενου. Για παράδειγμα, στο πρώτο στάδιο να εφαρμόζεται η βελτίωση του προηγουμένου προβλήματος, στο δεύτερο η βελτίωση του τρέχοντος προβλήματος κ.ο.κ. Ποιος είναι ο μέγιστος αριθμός των σταδίων; 26

Ταξινόμηση με Εναλλαγή (8) Άσκηση.Τροποποιείστε τον ψευδοκώδικα bubblesort έτσι ώστε να υπολογίζει και το διάνυσμα theseis. 1 2 3 4 5 6 7 8 9 10 11 theseis 1:n i n t 1 όσο i 2 και t 0 t 0 για j από 1 μέχρι i 1 αν Τ(j) > T(j+1) [Τ(j), T(j+1)] εναλλαγή(t(j), T(j+1)) [theseis(j), theseis(j+1)] εναλλαγή(theseis(j), theseis(j+1)) t t+1 i i 1 27

Ταξινόμηση με Εισαγωγή (1) Περιγραφή της μεθόδου: Αν τα πρώτα i στοιχεία του Τ είναι ταξινομημένα, κάνε εισαγωγή του Τ(i + 1) στο Τ(1:i) ώστε το διάνυσμα Τ(1:i + 1) ναταξινομηθεί. Αιτιολογία ονοματολογίας: Μέθοδος του χαρτοπαίκτη. Αλγόριθμος: insertsort Δεδομένα: T, n Αποτελέσματα: T 1 2 για i από 2 μέχρι n Τ(1:i) insert(t(1:i 1), T(i)) 28

Ταξινόμηση με Εισαγωγή (2) Εφαρμογή. T = [ 15 10 7 2 5 4 ] i = 2 Τ = [15 10 7 2 5 4] i = 3 Τ = [10 15 7 2 5 4] i = 4 Τ =[ 7 10 15 2 5 4] i = 5 Τ = [ 2 7 10 15 5 4] i = 6 Τ =[2 5 7 10 15 4] Τ = [ 2 4 5 7 10 15] 29

Ταξινόμηση με Εισαγωγή (3) Άσκηση. Γράψτε τον κώδικα του αλγόριθμου insertsort έτσι ώστε να μη κάνει χρήση της συνάρτησης insert. 1 2 3 4 5 6 7 Αλγόριθμος: insert Δεδομένα: T, m, a Αποτελέσματα: T T(m+1) a i m+1 όσο i > 1 και Τ(i 1) > T(i) temp T(i 1) T(i 1) T(i) T(i) temp i i 1 1 2 Αλγόριθμος: insertsort Δεδομένα: T, n Αποτελέσματα: T για i από 2 μέχρι n Τ(1:i) insert(t(1:i 1), T(i)) 30

Ταξινόμηση με Εισαγωγή (4) Άσκηση. Τροποποιείστε τον ψευδοκώδικα του αλγορίθμου ταξινόμησης με εισαγωγή (insertsort), χωρίς να κάνει χρήση της insert, και επιπρόσθετα να υπολογίζει και το διάνυσμα theseis. 31

Quiz [6] 100 διαφορετικοί αριθμοί είναι γραμμένοι σε 100 κάρτες, ένας αριθμός ανά κάρτα. Οι κάρτες είναι διατεταγμένες σε έναν πίνακα 10x10 σύμφωνα με τους παρακάτω κανόνες. 1. Κάθε γραμμή (από αριστερά δεξιά) περιλαμβάνει κάρτες με τους αριθμούς ταξινομημένους σε αύξουσα διάταξη. 2. Κάθε στήλη (από πάνω κάτω) περιλαμβάνει κάρτες με τους αριθμούς ταξινομημένους σε αύξουσα διάταξη. Όλες οι κάρτες είναι τοποθετημένες έτσι ώστε οι αριθμοί να μην είναι ορατοί. Σχεδιάστε έναν αλγόριθμο ο οποίος θα αναζητεί έναν αριθμό στους 100 γυρίζοντας το πολύ 20 κάρτες. 32

Quiz [6] x x x x x x x x x x x x x x x x x x x 33

Quiz [6] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 34