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

Σχετικά έγγραφα
Διάλεξη 09: Αλγόριθμοι Ταξινόμησης I

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

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

Δηάιεμε 13: Αιγόξηζκνη Ταμηλόκεζεο

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

Κεφάλαιο 8.6. Πίνακες ΙI (Διάλεξη 17)

Μεθόδων Επίλυσης Προβλημάτων

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

Κεφάλαιο 8.6. Πίνακες ΙI ( ιάλεξη 16) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

Αλγόριθµοι Ταξινόµησης

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

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

Εργαστήριο 2: Πίνακες

Αλγόριθµοι Ταξινόµησης

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

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

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

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

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

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

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

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

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

Διάλεξη 18: B-Δένδρα

Διάλεξη 12: Λίστες Υλοποίηση & Εφαρμογές. Διδάσκων: Παναγιώτης Ανδρέου

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

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

Διάλεξη 26: Σωροί. Διδάσκων: Παναγιώτης Ανδρέου

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

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

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

Διδάσκων: Κωνσταντίνος Κώστα

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

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

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

Διδάσκων: Κωνσταντίνος Κώστα

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

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

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

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

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

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

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

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

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

Διάλεξη 16: Σωροί. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Ουρές Προτεραιότητας - Ο ΑΤΔ Σωρός, Υλοποίηση και πράξεις

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

Εισαγωγή στον δομημένο προγραμματισμό

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

Προγραµµατισµός 1 Ταξινόµηση - Αναζήτηση

Διάλεξη 16: Σωροί. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Ουρές Προτεραιότητας - Ο ΑΤΔ Σωρός, Υλοποίηση και πράξεις

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

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΕΠΛ 035: οµές εδοµένων και Αλγόριθµοι για Ηλεκτρολόγους Μηχανικούς και Μηχανικούς Υπολογιστών

Προγραμματισμός Η/Υ. Ενότητα 8: Ειδικά Θέματα Αλγορίθμων

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

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

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

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

p

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

Κεφάλαιο 1 Εισαγωγή. Περιεχόμενα. 1.1 Αλγόριθμοι και Δομές Δεδομένων

Εργαστήριο 6: Αναζήτηση, Ανάλυση Πολυπλοκότητας

Μεταγλωττιστές Βελτιστοποίηση

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 }

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

Δείκτες (Pointers) Ένας δείκτης είναι μια μεταβλητή με τιμή μια διεύθυνση μνήμης. 9.8

ΑΛΓΟΡΙΘΜΟΙ Άνοιξη I. ΜΗΛΗΣ

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

Προγραμματιςμόσ Μεκόδων Επίλυςθσ Προβλθμάτων. 15. Πίνακεσ ΙI. Ιωάννθσ Κατάκθσ. ΕΠΛ 032: Προγραμματιςμόσ Μεκόδων Επίλυςθσ Προβλθμάτων

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΕΠΛ 035: οµές εδοµένων και Αλγόριθµοι για Ηλεκτρολόγους Μηχανικούς και Μηχανικούς Υπολογιστών

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

Μεταγλωττιστές Βελτιστοποίηση

ΕΠΛ 231 οµές εδοµένων και Αλγόριθµοι Άννα Φιλίππου,

Εργαστήριο 7: Ο αλγόριθμος ταξινόμησης Radix Sort

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

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

Εργαστήριο 4: Υλοποίηση Αφηρημένου Τύπου Δεδομένων: Ταξινομημένη Λίστα

Στοιχεία Αλγορίθµων και Πολυπλοκότητας

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

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

Αλγόριθµοι και Πολυπλοκότητα

Διάλεξη 6: Δείκτες και Πίνακες

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

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

Σωροί. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Ουρές Προτεραιότητας Σωροί υλοποίηση και πράξεις Ο αλγόριθμος ταξινόμησης HeapSort

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

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

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

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

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

Quicksort. Επιμέλεια διαφανειών: Δ. Φωτάκης Μικροαλλαγές: Α. Παγουρτζής. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

Επανάληψη για τις Τελικές εξετάσεις. (Διάλεξη 24) ΕΠΛ 032: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕΘΟΔΩΝ ΕΠΙΛΥΣΗΣ ΠΡΟΒΛΗΜΑΤΩΝ

Κεφάλαιο 6 Ουρές Προτεραιότητας

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

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

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

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

Transcript:

Διάλεξη 13: Αλγόριθμοι Ταξινόμησης Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Οι αλγόριθμοι ταξινόμησης SelectionSort, InsertionSort, Στις ερχόμενες διαλέξεις θα δούμε τους αλγόριθμους Mergesort, QuickSort, BucketSort Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ. 13-1

Ανακοινώσεις Η ενδιάμεση θα γίνει Σάββατο 7/10/018 η ώρα 1:00 στις αίθουσες 108 και 109 στο ΧΩΔ01. Το quiz θα γίνει Δευτερά 15/10/018 στην αίθουσες 104 στο ΧΩΔ01. ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ. 13-

Αλγόριθμοι ταξινόμησης Δοθέντων μιας συνάρτησης f (ordering function) και ενός συνόλου στοιχείων x 1, x,..., x n η ταξινόμηση συνίσταται στη μετάθεση των στοιχείων ώστε να μπουν σε μια σειρά xk,x 1 η οποία να ικανοποιεί ή f ( f ( x x k k 1 1 ) ) k f ( f (,..., x x x k k k n ) )...... αύξουσα σειρά φθίνουσα σειρά Ταξινόμηση Ονομάτων: f( Maria ) < f( Michalis ), δηλαδή η συνάρτηση f συγκρίνει τις δυο λέξεις αλφαριθμητικά. Θα εξετάσουμε αλγόριθμους ταξινόμησης με κύριο γνώμονα την αποδοτικότητά τους (χρόνος εκτέλεσης, χρήση μνήμης). ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ. 13-3 f ( f ( x x k n k n ) ).

1/5) Ταξινόμηση με Επιλογή - Selection Sort Η Ταξινόμηση με Επιλογή (Selection Sort) βασίζεται στα ακόλουθα τρία βήματα: 1. επιλογή του ελάχιστου στοιχείου. ανταλλαγή με το i-οστό στοιχείο (i είναι μια μεταβλητή που αυξάνεται κατά ένα). 3. επανάληψη των βημάτων 1 και για τα υπόλοιπα στοιχεία. ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ. 13-4

Παράδειγμα Selection Sort Θέση 0 1 3 4 5 pos Αρχικός Πίνακας 34 8 64 51 3 33 Με i=0 8 34 64 51 3 33 Στοιχείο που θα εισαχθεί στην θέση i Με i=1 8 3 64 51 34 33 Με i= 8 3 33 51 34 64 Με i=3 8 3 33 34 51 64 Με i=4 8 3 33 34 51 64 ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ. 13-5

Αλγόριθμος Selection Sort void SelectionSort(int A[],int n) for (int i=0; i<n-1; i++) // θέση επόμενου μικρότερου στοιχείου - αρχικοποίηση pos=i; // βρες το μικρότερο στοιχείο for (int j = i+1; j < n, j++) if A[j]<A[pos] pos=j; // θέση μικρότερου if (pos!= i) // αντάλλαξε το A[i] με το A[pos] temp = A[i]; A[i] = A[pos]; A[pos] = temp; 34 8 64 51 3 33 ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ. 13-6

Εκτέλεση Selection Sort BEFORE: [8,4,8,43,3,5,,1,10,] Swapping 8 <-> 1 [1,4,8,43,3,5,,8,10,] Swapping 4 <-> [1,,8,43,3,5,4,8,10,] Swapping 8 <-> 3 [1,,3,43,8,5,4,8,10,] Swapping 43 <-> 4 [1,,3,4,8,5,43,8,10,] Swapping 8 <-> 5 [1,,3,4,5,8,43,8,10,] [1,,3,4,5,8,43,8,10,] Swapping 43 <-> 8 [1,,3,4,5,8,8,43,10,] Swapping 43 <-> 10 [1,,3,4,5,8,8,10,43,] AFTER: [1,,3,4,5,8,8,10,43,] ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ. 13-7

Ανάλυση Χρόνου Εκτέλεσης Selection Sort void SelectionSort(int A[],int n) for (int i=0; i<n-1; i++) // θέση επόμενης ανταλλαγής pos=i; O(1) // βρες το μικρότερο στοιχείο for (j = i+1; j < n, j++) if A[j]<A[pos] pos=j; Ο(i) if (pos!= i) // αντάλλαξε το A[i] με το A[pos] temp = A[i]; A[i] = A[pos]; A[pos] = temp; Εσωτερικός Βρόχος (Ελάχιστο μεταξύ i): Σε χρόνο O(i) Εξωτερικός Βρόχος (Επανάληψη εσωτερικού κόμβου N-1 φορές): i i n 1 = n 1)( n 1+ 1) 1 ( n O(1) O(1) O(1) ( ( n 1) n = = n) O( n ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ. 13-8 )

) Ταξινόμηση με Εισαγωγή - Insertion Sort Η Ταξινόμηση με Εισαγωγή (Insert Sort) εισάγει ένα-ένα τα στοιχεία του συνόλου που εξετάζεται, στη σωστή τους θέση. Στη φάση i: 1. υποθέτουμε πως ο πίνακας A[0..(i-1)] είναι ταξινομημένος,. εισάγουμε το στοιχείο Α[i] στην ακολουθία Α[0..(i-1)] στη σωστή θέση. Αυτό επιτυγχάνεται μετακινώντας όλα τα στοιχεία που είναι μεγαλύτερα του Α[i] μια θέση δεξιά. sorted notsorted A[i] 7 17 9 5 7 11 ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ. 13-9

) Ταξινόμηση με Εισαγωγή - Insertion Sort Η ταξινόμηση με εισαγωγή (Insertion Sort) εισάγει ένα-ένα τα στοιχεία του συνόλου που εξετάζεται, στη σωστή τους θέση. Στη φάση i: 1. υποθέτουμε πως ο πίνακας A[0..(i-1)] είναι ταξινομημένος,. εισάγουμε το στοιχείο Α[i] στην ακολουθία Α[0..(i-1)] στη σωστή θέση. Αυτό επιτυγχάνεται μετακινώντας όλα τα στοιχεία που είναι μεγαλύτερα του Α[i] μια θέση δεξιά. sorted 7 17 A[i] 9 1 sorted 7 17 9 notsorted 7 11 5 5 notsorted A[i] 7 11 3 A[i] 9 7 17 sorted 5 notsorted 7 11 ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ. 13-10

Παράδειγμα Insertion Sort Θέση 0 1 3 4 5 Αρχικός Πίνακας 34 8 64 51 3 1 Στοιχείο που θα εισαχθεί Με i=1 8 34 64 51 3 1 Με i= 8 34 64 51 3 1 Οι σκιασμένοι αριθμοί την στιγμή i, είναι ταξινομημένοι Με i=3 8 34 51 64 3 1 Με i=4 8 3 34 51 64 1 Με i=5 8 1 3 34 51 64 ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ. 13-11

Αλγόριθμος Insertion Sort void ΙnsertionSort(int A[], int n) for (i=1; i < n; i++) // στοιχείο εισαγωγής index = A[i]; // μετακίνηση στοιχείων δεξιά for (j=i; j>0; j--) // θέλουμε να μετακινήσουμε μόνο τα A[j-1] > index if (A[j-1] <= index) break; A[i] sorted notsorted 9 A[j] = A[j-1]; j=i 7 17 5 7 11 // τοποθέτηση στοιχείου A[j] = index; A[j-1] index=9 ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ. 13-1

Εκτέλεση Insertion Sort BEFORE:[8,4,8,43,3,5,,] ταξινομημένα στοιχεία) (Το κόκκινο δείχνει τα i:1(index:4) >8 ( > Δείχνει τις μετακινήσεις) [4,8,8,43,3,5,,] (Νέος Πίνακας) i:(index:8) (Τίποτα δεν μετακινείται) [4,8,8,43,3,5,,] i:3(index:43) (Τίποτα δεν μετακινείται) [4,8,8,43,3,5,,] i:4(index:3) >43>8>8>4 [3,4,8,8,43,5,,] sorted 7 17 A[j-1] A[i] 9 j=i index=9 notsorted 5 7 11 i:5(index:5) >43>8>8 [3,4,5,8,8,43,,] i:6(index:) >43>8>8>5>4>3 [,3,4,5,8,8,43,] AFTER:[,3,4,5,8,8,43,] ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ. 13-13

Ανάλυση Χρόνου Εκτέλεσης Insertion Sort void ΙnsertionSort(int A[], int n) for (i=1; i < n; i++) // στοιχείο εισαγωγής index = A[i]; // μετακίνηση στοιχείων δεξιά for (j=i; j>0; j--) if (A[j-1] <= index) break; A[j] = A[j-1]; // τοποθέτηση στοιχείου A[j] = index; Ο(i) Εσωτερικός Βρόχος (Ελάχιστο μεταξύ i): Σε χρόνο O(i) Εξωτερικός Βρόχος (Επανάληψη εσωτερικού κόμβου N-1 φορές): ( n 1)( n 1+ 1) ( n 1) n 1 i i n 1 = = = ( n n) O( n ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ. 13-14 )

Σύγκριση Insertion Sort και Selection Sort Υπάρχουν δυο κριτήρια: Βήματα (μέχρι να βρω ένα στοιχείο) και Μετακινήσεις (όταν το βρω, πόσα swap κάνω). Ο αλγόριθμος Selection sort απαιτεί πάντα Ο(n²) βήματα (δεν είναι δυνατή η γρήγορη έξοδος από τους βρόχους), έτσι η βέλτιστη περίπτωση είναι η ίδια με τη χείριστη περίπτωση. Στον αλγόριθμο Insertion Sort, είναι δυνατό να βγούμε από το δεύτερο βρόχο γρήγορα. Στη βέλτιστη περίπτωση (ο πίνακας είναι ήδη ταξινομημένος), ο χρόνος εκτέλεσης είναι της τάξης Ω(n) βήματα. sorted A[i] 9 notsorted 7 17 5 7 11 Παρά τούτου, το Selection Sort είναι πιο αποδοτικός αν κρίνουμε τους αλγόριθμους με βάση τον αριθμό των μετακινήσεων (swaps) που απαιτούν: το selection sort απαιτεί Ο(n) μετακινήσεις, το insertion sort, απαιτεί Ο(n²) μετακινήσεις (στη χείριστη περίπτωση όπου ο αρχικός πίνακας είναι ταξινομημένος σε φθίνουσα σειρά). 13-15