Ο αλγόριθμος πχ ταξινόμησης με επιλογή είναι αρκετά εύκολος και προσφέρεται για διάφορες ασκήσεις κατά τη γνώμη μου. (σύμφωνα με τις οδηγίες....)
Για i από 1 μέχρι n-1
k <- i
x <- table
Για j από i+1 μέχρι n
Αν x > table[j] Τότε
k <-j
x <- table[j]
Τέλος_Επανάληψης
table[k] <- table
table <- x
Τέλος_ επανάληψης
Προσωπικά όχι απλά τη διδάσκω με παράδειγμα όπως μας ζητείται στις οδηγίες, αλλά μου αρέσει επίσης να την επαναλαμβάνω και στα υποπρογράμματα στα πρώτα μαθήματα ώστε να αντιλαμβάνονται ίσως καλύτερα οι μαθητές το λόγο ύπαρξης των υποπρογραμμάτων ως εξής:
- Έστω ότι έχουμε ή κατασκευάζουμε μια συνάρτηση η οποία δέχεται έναν πίνακα και ακόμα 1 παράμετρο και λειτουργεί ως εξής: Επιστρέφει τη θέση του ΜΙΝ του πίνακα Π από την θέση "από_που" και έπειτα.
πχ βρες_θέση_μιν(Α,5) βρίσκει τη θέση του μικρότερου στοιχείου από τη θέση 5 μέχρι και το τέλος του πίνακα
συνάρτηση βρες_θέση_μιν(Π,από_που):ΑΚΕΡΑΙΑ
..
βρες_θέση_μιν <- από_που
μιν <- Π[από_που]
Για ι απο από_που+1 μέχρι ν
... κλπ
.. (εύκολη συνάρτηση που προσφέρεται για τα πρώτα μαθήματα υποπρογραμμάτων)
- ο αλγόριθμος στη συνέχεια για αύξουσα ταξινόμηση με επιλογή είναι κομψότατος...
Για ι από 1 μέχρι Ν-1
θμιν <- βρες_θέση_μιν(Π,ι)
αντιμετάθεσε Π[θμιν],Π[ι]
αντιμετάθεσε άλλοΠ[θμιν],άλλοΠ[ι] // για παράλληλους πίνακες
τέλος_επανάληψης
επίσης προσφέρεται για μια περιγραφή με φυσική γλώσσα και στη συνέχεια μεταφορά σε ΓΛΩΣΣΑ, αφού είναι αρκετά απλός
1. πέρασμα, βρίσκω ΜΙΝ από θέση 1 μέχρι τέλος και αντιμεταθέτω 1η θέση με θέση ΜΙΝ του πίνακα
2. πέρασμα, βρίσκω ΜΙΝ από θέση 2 μέχρι τέλος και αντιμεταθέτω 2η θέση με θέση ΜΙΝ του πίνακα
3. πέρασμα, βρίσκω ΜΙΝ από θέση 3 μέχρι τέλος και αντιμεταθέτω 3η θέση με θέση ΜΙΝ του πίνακα
κοκ
φαντάζομαι για αυτό το λόγο και στις οδηγίες ζητούν ...
"Να δοθούν, ως παραδείγματα, κάποιοι από αυτούς (ταξινόμηση με επιλογή) με μορφή ασκήσεων, όπου περιγράφεται ο αλγόριθμος και ζητείται η υλοποίηση του σε πρόγραμμα (βλέπε ΠΑΡΑΡΤΗΜΑ)"