Selectionsort

23
Ταξινόμηση με επιλογή

Transcript of Selectionsort

Page 1: Selectionsort

Ταξινόμηση με επιλογή

Page 2: Selectionsort

Ταξινόμηση

Ταξινόμηση είναι η διαδικασία μετάθεσης των στοιχείων ενός πίνακα κατά τέτοιο τρόπο ώστε να εμφανίζονται σε αύξουσα ή φθίνουσα σειρά.

Page 3: Selectionsort

Ταξινόμηση με επιλογή

Η ταξινόμηση με επιλογή είναι ένας αλγόριθμος ταξινόμησης. Η συγκεκριμένος αλγόριθμος ταξινόμησης είναι αξιοσημείωτος για την απλότητά του.

Page 4: Selectionsort

Περιγραφή του αλγορίθμου

Ο πίνακας χωρίζεται σε δύο μέρη: τον υποπίνακα που έχει ήδη ταξινομηθεί και τον υποπίνακα με τα στοιχεία που απομένει να ταξινομηθούν. Αρχικά, ο ταξινομημένος υποπίνακας είναι κενός ενώ αταξινόμητος είναι ολόκληρος ο πίνακας εισόδου. Ο αλγόριθμος αρχικά ξεκινά με την εύρεση του μικρότερου (ή μεγαλύτερου, ανάλογα με τη σειρά ταξινόμησης) στοιχείου στον αταξινόμητο υποπίνακα, το ανταλλάσσει με το αριστερό στοιχείο και μετακινεί στα όρια του ταξινομημένου υποπίνακα ένα στοιχείο προς τα δεξιά. Η διαδικασία ολοκληρώνεται όταν ο αταξινόμητος υποπίνακας μείνει κενός.

Page 5: Selectionsort

Παράδειγμα

Ξεκινάμε αναζητώντας το

μικρότερο στοιχείο του πίνακα

6

2

1

3

5

4

Μικρότερο;

Page 6: Selectionsort

6

2

1

3

5

4

Μικρότερο;

Page 7: Selectionsort

6

2

1

3

5

4

Μικρότερο!

Page 8: Selectionsort

6

2

1

3

5

4

Αντιμετάθεση!

Page 9: Selectionsort

1

2

6

3

5

4

Αντιμετάθεση!

Page 10: Selectionsort

1

2

6

3

5

4

Μικρότερο;

Αφού το μικρότερο στοιχείο

μεταφερθεί στην πρώτη θέση,

συνεχίζουμε τη διαδικασία για το

επόμενο στοιχείο, ψάχνοντας για

το δεύτερο μικρότερο στοιχείο του

πίνακα.

Page 11: Selectionsort

1

2

6

3

5

4

Μικρότερο!

Το δεύτερο μικρότερο στοιχείο του

πίνακα βρίσκεται ήδη στη δεύτερη

θέση, άρα δε χρειάζεται αντιμετάθεση.

Page 12: Selectionsort

1

2

6

3

5

4

Μικρότερο;

Τώρα ψάχνουμε για το τρίτο

μικρότερο στοιχείο του πίνακα.

Page 13: Selectionsort

1

2

6

3

5

4

Μικρότερο!

Page 14: Selectionsort

Αντιμετάθεση!

1

2

6

3

5

4

Page 15: Selectionsort

1

2

3

6

5

4

Αντιμετάθεση

Page 16: Selectionsort

1

2

3

6

5

4

Μικρότερο;

Page 17: Selectionsort

1

2

3

6

5

4

Μικρότερο;

Page 18: Selectionsort

1

2

3

6

5

4 Αντιμετάθεση!

Page 19: Selectionsort

1

2

3

6

5

4 Μικρότερο!

Page 20: Selectionsort

Τα τελευταία δύο στοιχεία είναι στη σωστή σειρά και δεν απαιτείται αντιμετάθεση

1

2

3

4

5

6

Page 21: Selectionsort

Τι είναι η αντιμετάθεση;

6

2

1

3

5

4

6

Το πρώτο στοιχείο τοποθετείται σε μια

μεταβλητή temp

temp

Page 22: Selectionsort

1

2

1

3

5

4

Αντικαθιστούμε το πρώτο στοιχείο με το μικρότερο στοιχείο (εδώ το τρίτο)

6

temp

Page 23: Selectionsort

1

2

6

3

5

4

6

temp

Τοποθετούμε στο τρίτο στοιχείο την τιμή της μεταβλητής temp