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

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

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

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

Περιγραφή αλγορίθµων. ιαγράµµατα ροής

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Προγραμματισμός Η/Υ (ΤΛ2007 )

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

1. Η χειρότερη περίπτωση είναι όταν γίνου 10 επαναλήψεις, δηλαδή για n = 0.

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

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

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

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

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

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

5.1. Προσδοκώμενα αποτελέσματα

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

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

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

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

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

11/23/2014. Στόχοι. Λογισμικό Υπολογιστή

ιαφάνειες παρουσίασης #4

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

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

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

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

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

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

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

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

Επιλογή και επανάληψη. Λογική έκφραση ή συνθήκη

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

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

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

242 -ΕισαγωγήστουςΗ/Υ

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

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

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

ΑΡΧΗ 1ης ΣΕΛΙΔΑΣ. ii) Πόσες φορές θα εκτελεστεί η εντολή ΔΙΑΒΑΣΕ Α[μ,λ] στον αλγόριθμο της προηγούμενης ερώτησης; α) 35 β) 12 γ) 20

Δομημένος Προγραμματισμός (ΤΛ1006)

Αναζήτηση και ταξινόμηση

ιαίρει-και-βασίλευε ημήτρης Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο

Ασκήσεις στα υποπρογράμματα

ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ. Διαδικασίες και συναρτήσεις. 22 Νοε 2008 Ανάπτυξη εφαρμογών/ Υποπρογράμματα 1

Σου προτείνω να τυπώσεις τις επόμενες τέσσερις σελίδες σε ένα φύλο διπλής όψης και να τις έχεις μαζί σου για εύκολη αναφορά.

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ Κεφάλαιο 3 ο

3 ΟΥ και 9 ΟΥ ΚΕΦΑΛΑΙΟΥ

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

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

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 }

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Γ ΛΥΚΕΙΟΥ ΗΜΕΡΟΜΗΝΙΑ: 6/04/2014

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

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

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

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

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

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον. Κεφάλαια 2,7,8

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

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

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

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

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

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

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

FORTRAN και Αντικειμενοστραφής Προγραμματισμός

ΕΚΦΩΝΗΣΕΙΣ. β. Να γράψετε αναλυτικά τα μειονεκτήματα της χρήσης των πινάκων. γ. Να γράψετε ονομαστικά τις τυπικές επεξεργασίες των πινάκων.

Δομές Δεδομένων. Τι είναι η δομή δεδομένων; Έστω η ακολουθία αριθμών: 8, 10,17,19,22,5,12 Λογικό Επίπεδο. Φυσικό Επίπεδο RAM. Ταξινομημένος.

Αλγόριθμοι και Πολυπλοκότητα Φώτης Ε. Ψωμόπουλος, Περικλής Α. Μήτκας

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

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

1. Δεν μπορεί να γίνει κλήση μίας διαδικασίας μέσα από μία συνάρτηση.

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

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

Επαναληπτικό Διαγώνισμα

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

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

Β[(ι-7)*15+j] ON[ι,j] temp B[j-1] B[j-1] B[j] B[j] temp. j j+1

Transcript:

Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Αγρονόμων Τοπογράφων Μηχανικών Προγραμματιστικές Τεχνικές Βασίλειος Βεσκούκης Δρ. Ηλεκτρολόγος Μηχανικός & Μηχανικός Υπολογιστών ΕΜΠ v.vescoukis@cs.ntua.gr Ρωμύλος Κορακίτης Αστροφυσικός Αναπλ. Καθηγητής ΕΜΠ romylos@survey.ntua.gr Αλγόριθμοι ταξινόμησης σε πίνακες

Ταξινόµηση (sort) Μια από τις πιο συνηθισµένες και σηµαντικές διαδικασίες επεξεργασίας δεδοµένων είναι η ταξινόµηση µιας σειράς (λίστας) οµοειδών δεδοµένων, αριθµητικών ή αλφαριθµητικών. Ταξινόµηση (sorting) είναι η διαδικασία µετατροπής µιας λίστας στοιχείων (ενός πίνακα) σε µια ισοδύναµη λίστα όπου τα στοιχεία είναι τοποθετηµένα κατά σειρά, αύξουσα ή φθίνουσα, σύµφωνα µε την τιµή τους. ηλαδή, αν η ταξινοµηµένη λίστα είναι καταχωρηµένη στον πίνακα Α[Ν] ισχύει: Α[0] <= Α[1] <= Α[2] <= <= Α[Ν 2] <= Α[Ν 1] Πολλές µέθοδοι (αλγόριθµοι) έχουν προταθεί για την ταξινόµηση των στοιχείων ενός πίνακα. Βέβαια, οι απλούστεροι αλγόριθµοι είναι λιγότερο αποδοτικοί από τους πιο πολύπλοκους, κάτι που έχει σηµασία όταν το µέγεθος του πίνακα είναι πολύ µεγάλο.

Ταξινόµηση (sort) Παράδειγµα 1: Αρχική λίστα: 43, 22, 17, 36, 16, 28 Ταξινοµηµένη λίστα: 16, 17, 22, 28, 36, 43 (αύξουσα ταξινόµηση) 43, 36, 28, 22, 17, 16 (φθίνουσα ταξινόµηση) Παράδειγµα 2: Αρχική λίστα: Q, W, E, R, T, Y, P Ταξινοµηµένη λίστα: E, P, Q, R, T, W, Y (αύξουσα ταξινόµηση) Στην περίπτωση ταξινόµησης αλφαριθµητικών στοιχείων, ως τιµή του κάθε στοιχείου λαµβάνεται ο αριθµός της κωδικοποίησης του αλφαριθµητικού (συνήθως ASCII). Η ταξινόµηση µιας λίστας έχει µεγάλη σηµασία γιατί διευκολύνει σηµαντικά την αναζήτηση στοιχείων µέσα στην λίστα.

Ταξινόµηση (sort) Όλοι οι αλγόριθµοι ταξινόµησης βασίζονται σε σύγκριση των στοιχείων και σε αντιµετάθεση των στοιχείων, όπου χρειάζεται. Για την ευκολότερη υλοποίηση των αλγορίθµων αυτών είναι πολύ χρήσιµη µια συνάρτηση αντιµετάθεσης στοιχείων, της µορφής: Συνάρτηση Αντιµετάθεση (Πίνακας Α[], δείκτης Κ, δείκτης Μ) Temp = A[K] A[K] = A[M] A[M] = Temp ύο χαρακτηριστικοί αλγόριθµοι ταξινόµησης είναι: Αλγόριθµος επιλογής (selection sort) Αλγόριθµος φυσαλίδας (bubble sort)

Ταξινόµηση µε επιλογή (Selection sort) Ο πίνακας Α[Ν] περιέχει αταξινόµητα δεδοµένα και επιζητούµε αύξουσα ταξινόµηση. Η λειτουργία του αλγορίθµου αυτού είναι: διαδοχική επιλογή του µεγαλύτερου στοιχείου και τοποθέτησή του στο άνω άκρο του πίνακα, το οποίο µειώνεται κατά ένα σε κάθε επανάληψη. ηλαδή: 1 η επανάληψη: Αναζήτηση του µέγιστου των Ν στοιχείων και αντιµετάθεσή του µε το στοιχείο Α[Ν 1] 2 η επανάληψη: Αναζήτηση του µέγιστου των υπολοίπων (Ν 1) στοιχείων και αντιµετάθεσή του µε το στοιχείο Α[Ν 2] 3 η επανάληψη: Αναζήτηση του µέγιστου των υπολοίπων (Ν 2) στοιχείων και αντιµετάθεσή του µε το στοιχείο Α[Ν 3].... (Ν 1) η επανάληψη: Αναζήτηση του µέγιστου των τελευταίων 2 στοιχείων και αντιµετάθεσή του µε το στοιχείο Α[1]

Ταξινόµηση µε επιλογή (Selection sort) ΨΕΥ ΟΚΩ ΙΚΑΣ ΑΡΧΗ Β1 Β2 Β3 Β4 ΤΕΛΟΣ Για Κ = Ν 1 ως 1, βήµα 1, επανάλαβε: Μ = 0 Για Ι = 1 ως Κ, βήµα +1, επανάλαβε: Αν Α[Ι] > Α[Μ], τότε Μ = Ι Τέλος επανάληψης (Ι) Αντιµετάθεσε τις τιµές των Α[Κ] και Α[Μ] Τέλος επανάληψης (Κ)

Ταξινόµηση µε επιλογή (Selection sort) ΠΑΡΑ ΕΙΓΜΑ 1 η επανάληψη (Αρχική λίστα): 43, 22, 17, 36, 16, 28 Μέγιστο : 43 τροποποιηµένη λίστα: 28, 22, 17, 36, 16, 43 2 η επανάληψη : 28, 22, 17, 36, 16, 43 Μέγιστο : 36 τροποποιηµένη λίστα: 28, 22, 17, 16, 36, 43 3 η επανάληψη : 28, 22, 17, 16, 36, 43 Μέγιστο : 28 τροποποιηµένη λίστα: 16, 22, 17, 28, 36, 43 4 η επανάληψη : 16, 22, 17, 28, 36, 43 Μέγιστο : 22 τροποποιηµένη λίστα: 16, 17, 22, 28, 36, 43 5 η επανάληψη : 16, 17, 22, 28, 36, 43 Μέγιστο : 17 ταξινοµηµένη λίστα: 16, 17, 22, 28, 36, 43

Ταξινόµηση φυσαλίδας (Bubble sort) Ο πίνακας Α[Ν] περιέχει αταξινόµητα δεδοµένα και επιζητούµε αύξουσα ταξινόµηση. Η λειτουργία του αλγορίθµου αυτού είναι: επαναληπτικά περάσµατα των στοιχείων του πίνακα έτσι ώστε, σε κάθε πέρασµα, το µεγαλύτερο από τα στοιχεία να σπρώχνεται (µε διαδοχικές συγκρίσεις και αντιµεταθέσεις) προς το άνω άκρο του πίνακα, το οποίο µειώνεται κατά ένα σε κάθε πέρασµα. Η επανάληψη τερµατίζεται όταν εξαντληθούν όλα τα περάσµατα ή όταν σε κάποιο πέρασµα δεν χρειαστεί καµιά αντιµετάθεση στοιχείων.

Ταξινόµηση φυσαλίδας (Bubble sort) ΨΕΥ ΟΚΩ ΙΚΑΣ ΑΡΧΗ Β1 Πέρασµα = 1 Β2 Αντιµετάθεση = ΑΛΗΘΗΣ Β3 Εφ όσον (Πέρασµα < Ν ΚΑΙ Αντιµετάθεση = ΑΛΗΘΗΣ), εκτέλεσε: Αντιµετάθεση = ΨΕΥ ΗΣ Β4 Για Ι = 0 ως (Ν Πέρασµα), βήµα +1, επανάλαβε: Β5 Αν Α[Ι] > Α[Ι + 1], τότε : Αντιµετάθεσε Α[Ι] και Α[Ι + 1] Αντιµετάθεση = ΑΛΗΘΗΣ Τέλος επανάληψης (Ι) Β6 Πέρασµα = Πέρασµα + 1 Β7 Επιστροφή στο Β3 ΤΕΛΟΣ

Ταξινόµηση φυσαλίδας (Bubble sort) ΠΑΡΑ ΕΙΓΜΑ (Αρχική λίστα): 43, 22, 17, 36, 16, 28 1 Ο Πέρασµα: 22, 43, 17, 36, 16, 28 22, 17, 43, 36, 16, 28 22, 17, 36, 43, 16, 28 22, 17, 36, 16, 43, 28 22, 17, 36, 16, 28, 43 2 Ο Πέρασµα: 17, 22, 36, 16, 28, 43 17, 22, 36, 16, 28, 43 17, 22, 16, 36, 28, 43 17, 22, 16, 28, 36, 43 3 ο Πέρασµα: 17, 22, 16, 28, 36, 43 κ.ο.κ. ταξινοµηµένη λίστα: 16, 17, 22, 28, 36, 43

Σύγκριση των αλγορίθµων ταξινόµησης Ο αλγόριθµος επιλογής εκτελεί 1 + 2 + 3 +.. + (Ν 1) συγκρίσεις και, κατά µέσο όρο, Ν/2 αντιµεταθέσεις στοιχείων (που χρειάζονται 3 αναθέσεις τιµής η κάθε µία). Επειδή ισχύει : 1 + 2 + 3 +.. + Ν = Ν(Ν 1) / 2, η µέση επίδοση του αλγορίθµου είναι ανάλογη του Ν 2. Ο αλγόριθµος φυσαλίδας εκτελεί, κατά µέσο όρο, (Ν 1)/2 περάσµατα, Ν/2 συγκρίσεις και Ν/4 αντιµεταθέσεις στο καθένα, εποµένως η επίδοση και αυτού του αλγορίθµου είναι ανάλογη του Ν 2. Χρησιµοποιώντας σύνθετους αλγορίθµους, που χρησιµοποιούν αναδροµή (π.χ. QuickSort) µπορούµε να επιτύχουµε µέση επίδοση ανάλογη του Ν logν, που αποτελεί σηµαντική βελτίωση για µεγάλες τιµές του Ν. Παράδειγµα: Ταξινόµηση πίνακα µε 10 6 στοιχεία µπορεί να απαιτεί 10 12 συγκρίσεις µε αλγόριθµο επιλογής και µόνο 10 7 συγκρίσεις µε αλγόριθµο QuickSort.

Παράδειγμα - Ταξινόμηση πίνακα με bubblesort Πρόβλημα: Οι ορθογώνιες συντεταγμένες (x,y) ενός αριθμού N σημείων (N<100) είναι καταχωρημένες στο αρχείο points.txt. Να κατασκευαστεί ένα πρόγραμμα που θα εκτελεί τα ακόλουθα: 1.Θα διαβάζει τις συντεταγμένες από το αρχείο και θα τις εκχωρεί σε αντίστοιχους πίνακες. 2.Θα υπολογίζει τα μήκη των ευθυγράμμων τμημάτων μεταξύ διαδοχικών σημείων. 3.Θα ταξινομεί, με αύξουσα σειρά, τον πίνακα που θα περιέχει τα μήκη και θα τον γράφει στο αρχείο sortlen.txt. 4.Θα υπολογίζει την μέση τιμή, την τυπική απόκλιση και την διάμεση τιμή των μηκών καιθαγράφειταμεγέθηαυτάστοαρχείοsortlen.txt. Δρ. Ρωμύλος Βασίλειος Κορακίτης Βεσκούκης

Παράδειγμα - Ταξινόμηση πίνακα με bubblesort Δείγμα εγγραφών του αρχείου points.txt: 53.19 15.55 52.93 19.29 54.25 22.57 42.64 24.10.......... Μορφοποίηση εγγραφών του αρχείου sortlen.txt: Sorted lengths 2.034 2.256..... 12.781 13.294 Mean value = 6.256 Standard Deviation = 2.873 Median value = 7.012 Δρ. Ρωμύλος Βασίλειος Κορακίτης Βεσκούκης