Selectionsort

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

Transcript of Selectionsort

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

Ταξινόμηση

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

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

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

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

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

Παράδειγμα

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

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

6

2

1

3

5

4

Μικρότερο;

6

2

1

3

5

4

Μικρότερο;

6

2

1

3

5

4

Μικρότερο!

6

2

1

3

5

4

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

1

2

6

3

5

4

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

1

2

6

3

5

4

Μικρότερο;

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

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

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

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

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

πίνακα.

1

2

6

3

5

4

Μικρότερο!

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

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

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

1

2

6

3

5

4

Μικρότερο;

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

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

1

2

6

3

5

4

Μικρότερο!

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

1

2

6

3

5

4

1

2

3

6

5

4

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

1

2

3

6

5

4

Μικρότερο;

1

2

3

6

5

4

Μικρότερο;

1

2

3

6

5

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

1

2

3

6

5

4 Μικρότερο!

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

1

2

3

4

5

6

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

6

2

1

3

5

4

6

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

μεταβλητή temp

temp

1

2

1

3

5

4

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

6

temp

1

2

6

3

5

4

6

temp

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