Η εξωτερική επανάληψη της φυσαλίδας

Ξεκίνησε από Δημήτρης Χατζόπουλος, Χθες στις 10:00:18 ΠΜ

« προηγούμενο - επόμενο »

Δημήτρης Χατζόπουλος

Καλημέρα σε όλους.
Άνοιξα ένα νέο thread γιατί θεωρώ ότι είναι ξεχωριστό θέμα και δεν αφορά μόνο το β3.
Πιστεύω ότι η συγκεκριμένη παρατήρηση, αφορά γενικά το γεγονός, ότι η εξωτερική επανάληψη της ταξινόμησης φυσαλίδας, είναι κάτι που ναι μεν διδάσκουμε με συγκεκριμένο τρόπο, αλλά επειδή η φιλοσοφία της είναι το πόσες επαναλήψεις γίνονται (και βέβαια το που φτάνει η εσωτερική όταν ως όριο της εσωτερικής χρησιμοποιηθεί ο εξωτερικός μετρητής), δεν μπορεί να αποτελεί ερώτημα κλειστού τύπου στις εξετάσεις.

Χαρακτηριστικό παράδειγμα το φετινό β3 λοιπόν. Αν η εσωτερική επανάληψη πατάει σωστά και φτάνει μέχρι το στοιχείο που πρέπει, αρκεί με κάποιον τρόπο να συμβούν 49 φορές τουλάχιστον, αυτές οι επαναλήψεις. Αυτό το ελέγχει η εξωτερική επανάληψη .
Εάν πας για j από 99 μέχρι i με βήμα -2 τότε η εξωτερική επανάληψη αυτο που ελέγχει, είναι να συμβεί τουλάχιστον 49 φορές και να φτάνει την πρώτη φορά μέχρι το τρίτο την δεύτερη μέχρι το 5ο οπωσδήποτε και λοιπά. Άρα οποιαδήποτε εξωτερική καλύπτει το παραπάνω είναι δεκτή.
Παραδείγματα.
Για ι από (2 ή 3) μέχρι 99 με βήμα (1 ή 2)
Όπως ήδη έχει αναφερθεί.
Θα μπορούσε να ήταν όμως και οποιαδήποτε επανάληψη γίνεται 49 φορές, αρκεί ο εσωτερικός δείκτης να δουλεύει σωστά.
Άλλωστε η λογική της εξωτερικής επανάληψης στη φυσαλίδα είναι να ελέγξει τον εσωτερικό μετρητή και αν έχει Ν στοιχεία, να επαναλάβει την εσωτερική επανάληψη με τα όποια όρια αυτή έχει, Ν-1 ένα φορές, αφού αν έχουν τακτοποιηθεί τα Ν-1 στοιχεία, θα είναι στη σωστή θέση και το Ν-οστο.
Για παράδειγμα για ι από 2 μέχρι 50.
Και πάλι δουλεύει.
Για απο 3 μέχρι 51.
Εάν μάλιστα υπήρχε κενο και στον εσωτερικό δείκτη εκεί που είχαμε το μέχρι i, θα μπορούσε κάποιος εκεί να έβαζε για j από 99 μέχρι 2 ή 3 σταθερά με βήμα -2 και η εξωτερική επανάληψη, να ήταν οποιαδήποτε πραγματοποιεί 49 τουλάχιστον επαναλήψεις.
(Και ας  ξαναελέγχει στοιχεία που έχουν ταξινομηθεί. Βάζουμε όμως για όριο το ι στην δεύτερη επανάληψη για να μην καθυστερεί τζάμπα)
Βέβαια θα μου πείτε ότι δεν διδάσκουμε την ταξινόμηση έτσι και πολύ δίκιο θα έχετε.
Ωστόσο εγώ έχω εξηγήσει σε κάποιους καλούς μαθητές, ότι αν για παράδειγμα θέλεις να πάρεις τα τρία μεγαλύτερα στοιχεία και τα υπόλοιπα δεν σε νοιάζει αν είναι ταξινομημένα, μπορείς πολύ απλά να βάλεις
για ι από 2 μέχρι 4
Για j από 100 μέχρι ι με βήμα -1
Να κάνεις τρία ανεβάσματα δηλαδή σε όλον τον πίνακα και έχεις τα τρία μεγαλύτερα στοιχεία στην κορυφή.
Τους λέω βέβαια να μην το κάνουν για να μην μπερδέψουν το διορθωτή, αλλά να το ξέρουν σε περίπτωση που ζητηθεί κάτι παρόμοιο σε συμπλήρωση κενού και γενικά για να ξέρουν ότι αυτό μπορεί να δουλέψει σε ένα πραγματικό πρόγραμμα που θέλουν να το κάνουν πιο γρήγορο. ( Αν και θα μάθουν βέβαια γρηγορότερες μεθόδους.)

Με λίγα λόγια, αναφέρω αυτά θέλοντας να εκφράσω την αντίθεση μου στο να βάζουμε ερωτήματα κλειστού τύπου σε πράγματα που μπορούν να γίνουν και με διαφορετικό τρόπο.

Καλό θα είναι να είμαστε προσεκτικοί σε τέτοιες επιλογές. Ευτυχώς βέβαια έγιναν δεκτές και οι άλλες λύσεις αν και νομίζω ότι ίσως να μπορεί να έχουν αδικηθεί παιδιά που έδωσαν προφορικά.

Καλό καλοκαίρι και καλή συνέχεια σε όλους.
(Ώρα να δούμε τα θέματα στα ψηφιακά συστήματα που γράφουν οι μαθητές μου του επαλ.)