! ========================================================================================================================
! Έστω ότι θέλουμε να διατάξουμε τους μαθητές μίας τάξης κατά φθίνουσα σειρά ύψους.
! H τεχνική που θα ακολουθήσουμε είναι η εξής. Αρχικά, τοποθετούμε τους μαθητές σε μία τυχαία σειρά.
! Κατόπιν συγκρίνουμε το δεύτερο με τον πρώτο και αν χρειασθεί τους αντιμεταθέτουμε ώστε πρώτος να είναι o ψηλότερος.
! Στη συνέχεια θεωρούμε τον τρίτο και τον τοποθετούμε στη σωστή σειρά σε σχέση με τον πρώτο και το δεύτερο.
! Κατα αυτόν τον τρόπο συνεχίζουμε μέχρι να τοποθετήσουμε στη σωστή σειρά όλους τους μαθητές.
! Να σχεδιασθεί ένας αλγόριθμος που να υλοποιεί αυτή τη μέθοδο ταξινόμησης.
! (Δραστηριότητα ΔΣ3, από το σχολικό ΤΕΤΡΑΔΙΟ του ΜΑΘΗΤΗ, σελιδα 34, κεφ. 3, Δομές Δεδομένων και Αλγόριθμοι)
!
! (Ανάλογο είναι το Παράδειγμα Π1, από το σχολικό ΤΕΤΡΑΔΙΟ του ΜΑΘΗΤΗ, σελιδα 37, κεφ. 4, Τεχνικές σχεδίασης Αλγορίθμων)
! ========================================================================================================================
ΠΡΟΓΡΑΜΜΑ Ταξινόμηση_Εισαγωγής_Insertion_Short_Φθίνουσα
ΣΤΑΘΕΡΕΣ
N=20
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: i,j,A[N],max,επ ,θ
ΑΡΧΗ
ΓΙΑ i ΑΠΟ 2 ΜΕΧΡΙ N !ενδιαφερον παρουσιάζει η αλλαγή της παρούσας συνάρτησης πχ με την προσθήκη+ΤΥΧΑΙΟΣ(i)
A[i] <-- 24+ i + Α_Μ ((-1)^i)-2*i
ΓΡΑΨΕ_ A[I],' '
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ
επ <-- 0
! η ταξινόμηση αυτή είναι αρκετά γρήγορη (πιο γρήγορη από την απλή φυσσαλίδα)
! αν ο πίνακας είναι "περίπου ταξινομημένος"
! στατιστικά όμως παραμένει πιο "αργή" όμως από την "γρήγορη φυσσαλίδα"
ΓΙΑ i ΑΠΟ 2 ΜΕΧΡΙ N
max <-- A[i]
A[1] <-- max
j <-- i-1
ΟΣΟ max>A[j] ΕΠΑΝΑΛΑΒΕ
A[j+1] <-- A[j]
j <-- j-1
επ <-- επ+1
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
A[j+1] <-- max
επ <-- επ+1
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ
ΓΙΑ i ΑΠΟ 2 ΜΕΧΡΙ N
ΓΡΑΨΕ_ A[i],' '
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ
ΓΡΑΨΕ
ΓΡΑΨΕ επ, ' επαναλήψεις'
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ