e-ΜΑΘΗΜΑΤΑ |
Ταξινόμηση και δυαδική αναζήτηση |
ΠΡΟΓΡΑΜΜΑ Tαξινόμηση_με_ευθεία_εισαγωγή
! α) Να γραφτεί πρόγραμμα το οποίο να διαβάζει 10 ονόματα
! β) Να ταξινομεί τα ονόματα σε αύξουσα σειρά με τον ακόλουθο τρόπο:
! συγκρίνουμε το δεύτερο με το πρώτο όνομα και αν χρειαστεί τα
! αντιμεταθέτουμε ώστε το πρώτο να είναι μικρότερο.
! Στη συνέχεια ελέγχουμε το τρίτο και το τοποθετούμε στη σωστή θέση
! σε σχέση με τα δύο πρώτα (αν χρειαστεί μετακινούμε μια θέση τα ονόματα
! που είναι μεγαλύτερα ώστε να τοποθετηθεί).
! Το ίδιο επαναλαμβάνουμε για όλα τα ονόματα.
! γ) Να εμφανίζει ταξινομημένα τα ονόματα
ΣΤΑΘΕΡΕΣ
Ν = 10
ΜΕΤΑΒΛΗΤΕΣ
ΧΑΡΑΚΤΗΡΕΣ: Ον[Ν], temp
ΑΚΕΡΑΙΕΣ: i, j
ΛΟΓΙΚΕΣ: finish
ΑΡΧΗ
! α. διάβασμα πίνακα
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ Ν
ΓΡΑΨΕ i, "Δώστε όνομα : "
ΔΙΑΒΑΣΕ Ον[i]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
! β. ταξινόμηση πίνακα
ΓΙΑ i ΑΠΟ 2 ΜΕΧΡΙ Ν
temp <- Ον[i]
! θα βάλουμε το temp στη σωστή του σειρά
j <- i - 1
finish <- ΨΕΥΔΗΣ
ΟΣΟ finish = ΨΕΥΔΗΣ ΕΠΑΝΑΛΑΒΕ
ΑΝ j = 0 ΤΟΤΕ
! Φτάσαμε στην αρχή του πίνακα, άρα τελειώσαμε.
finish <- ΑΛΗΘΗΣ
ΑΛΛΙΩΣ_ΑΝ Ον[j] > temp ΤΟΤΕ
! Ο πίνακας έχει μεγαλύτερα στοιχεία, άρα τα μεταφέρουμε μια θέση δεξιά
! και συνεχίσουμε μέχρι να βρούμε την κατάλληλη θέση.
Ον[j + 1] <- Ον[j]
j <- j - 1
ΑΛΛΙΩΣ
! Πρέπει να σταματήσουμε την επανάληψη γιατί βρήκαμε μικρότερο
! και το στοιχείο θα μείνει σε αυτήν τη θέση
finish <- ΑΛΗΘΗΣ
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
! Βάζουμε το στοιχείο που εισάγουμε μια θέση δεξιά από το σημείο
! που βρήκαμε τη θέση που έχει μικρότερη τιμή.
Ον[j + 1] <- temp
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
! γ. εμφάνιση πίνακα
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ Ν
ΓΡΑΨΕ Ον[i]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
|