Μέθοδος ευθείας ανταλλαγής στοιχείων (φυσαλίδα)

76
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ Κεφάλαιο 3 ο Να δοθεί ο ορισμός της ταξινόμησης Ν στοιχείων Η τακτοποίηση των κόμβων μιας δομής με μια ιδιαίτερη σειρά ονομάζεται ταξινόμηση (sorting) ή διάταξη (ordering). Η ταξινόμηση των στοιχείων συνίσταται στην μετάθεση της θέσης των στοιχείων, ώστε να τοποθετηθούν σε μια σειρά ώστε δοθείσης μιας συνάρτησης διάταξης f, να ισχύει: f(α k1 ) f(α k2 ) …. f(α kΝ ) ορισμός Σπύρος Ζυγούρης Καθηγητής Πληροφορικής

description

Μέθοδος ευθείας ανταλλαγής στοιχείων (φυσαλίδα)Ανάπτυξη εφαρμογών σε προγραμματιστικό περιβάλλον.http://videolearner.comΣπύρος Ζυγούρης.

Transcript of Μέθοδος ευθείας ανταλλαγής στοιχείων (φυσαλίδα)

Page 1: Μέθοδος ευθείας ανταλλαγής στοιχείων (φυσαλίδα)

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝΚεφάλαιο 3ο

Να δοθεί ο ορισμός της ταξινόμησης Ν στοιχείωνΗ τακτοποίηση των κόμβων μιας δομής με μια ιδιαίτερη σειρά ονομάζεται

ταξινόμηση (sorting) ή διάταξη (ordering).

Η ταξινόμηση των στοιχείων συνίσταται στην μετάθεση της θέσης των στοιχείων, ώστε να τοποθετηθούν σε μια σειρά ώστε δοθείσης μιας συνάρτησης διάταξης f, να ισχύει:

f(αk1) ≤ f(αk2) ≤ …. ≤ f(αkΝ)

ορισμός

Σπύρος ΖυγούρηςΚαθηγητής Πληροφορικής

Page 2: Μέθοδος ευθείας ανταλλαγής στοιχείων (φυσαλίδα)

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝΚεφάλαιο 3ο

Να περιγραφεί η μέθοδος ευθείας ανταλλαγής στοιχείων (φυσαλίδα) και να δοθεί ο αλγόριθμος για έναν μονοδιάστατο πίνακα Ν στοιχείων.Βασίζεται στις διαδοχικές αντιμεταθέσεις των στοιχείων ώστε τα στοιχεία με τις μικρότερες τιμές να ανεβαίνουν στις πρώτες θέσειςτου πίνακα. Τα μικρότερα (ή κατά μια έννοια τα ελαφρύτερα), ακολουθούν την πορεία μιας φυσαλίδας. Για να γίνει αντιληπτός ο αλγόριθμος θα χρησιμοποιήσουμε τον ακόλουθο μονοδιάστατοπίνακα [25, 15, –7, 10, 3]

1ο ΒήμαΟ αλγόριθμος έχει ως στόχο

να βρει το μικρότερο(min) στοιχείο και να το τοποθετήσει στην πρώτη θέση.

Αρχίζοντας από το τελευταίο στοιχείο του πίνακα, συγκρίνουμε τα στοιχεία ανά δυο .

Τα αντιμεταθέτουμε, αν χρειασθεί, ώστε το μικρότερο από τα δύο στοιχεία να βρεθεί πρώτο.

310-71525

Ανά 2

Τελευταίο στοιχείο

Page 3: Μέθοδος ευθείας ανταλλαγής στοιχείων (φυσαλίδα)

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝΚεφάλαιο 3ο

Να περιγραφεί η μέθοδος ευθείας ανταλλαγής στοιχείων (φυσαλίδα) και να δοθεί ο αλγόριθμος για έναν μονοδιάστατο πίνακα Ν στοιχείων.Βασίζεται στις διαδοχικές αντιμεταθέσεις των στοιχείων ώστε τα στοιχεία με τις μικρότερες τιμές να ανεβαίνουν στις πρώτες θέσειςτου πίνακα. Τα μικρότερα (ή κατά μια έννοια τα ελαφρύτερα), ακολουθούν την πορεία μιας φυσαλίδας. Για να γίνει αντιληπτός ο αλγόριθμος θα χρησιμοποιήσουμε τον ακόλουθο μονοδιάστατοπίνακα [25, 15, –7, 10, 3]

1ο ΒήμαΟ αλγόριθμος έχει ως στόχο

να βρει το μικρότερο(min) στοιχείο και να το τοποθετήσει στην πρώτη θέση.

Αρχίζοντας από το τελευταίο στοιχείο του πίνακα, συγκρίνουμε τα στοιχεία ανά δυο .

Τα αντιμεταθέτουμε, αν χρειασθεί, ώστε το μικρότερο από τα δύο στοιχεία να βρεθεί πρώτο.

310-71525 min

Τελευταίο στοιχείο

Page 4: Μέθοδος ευθείας ανταλλαγής στοιχείων (φυσαλίδα)

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝΚεφάλαιο 3ο

Βασίζεται στις διαδοχικές αντιμεταθέσεις των στοιχείων ώστε τα στοιχεία με τις μικρότερες τιμές να ανεβαίνουν στις πρώτες θέσεις του πίνακα. Τα μικρότερα (ή κατά μια έννοια τα ελαφρύτερα), ακολουθούν την πορεία μιας φυσαλίδας. Για να γίνει αντιληπτός ο αλγόριθμος θα χρησιμοποιήσουμε τον ακόλουθο μονοδιάστατοπίνακα [25, 15, –7, 10, 3]

1ο ΒήμαΟ αλγόριθμος έχει ως στόχο να βρει το μικρότερο στοιχείο και να το τοποθετήσει στην πρώτη θέση.

Αρχίζοντας από το τελευταίο στοιχείο του πίνακα, συγκρίνουμε τα στοιχεία ανά δυο .

τα αντιμεταθέτουμε, αν χρειασθεί, ώστε το μικρότερο από τα δύο στοιχεία να βρεθεί πρώτο.

310-71525

Στη συνέχεια συγκρίνουμε το 4ο με το 3ο και αν χρειάζεται κάνουμε αντιμετάθεση τιμών.

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

Page 5: Μέθοδος ευθείας ανταλλαγής στοιχείων (φυσαλίδα)

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝΚεφάλαιο 3ο

Βασίζεται στις διαδοχικές αντιμεταθέσεις των στοιχείων ώστε τα στοιχεία με τις μικρότερες τιμές να ανεβαίνουν στις πρώτες θέσεις του πίνακα. Τα μικρότερα (ή κατά μια έννοια τα ελαφρύτερα), ακολουθούν την πορεία μιας φυσαλίδας. Για να γίνει αντιληπτός ο αλγόριθμος θα χρησιμοποιήσουμε τον ακόλουθο μονοδιάστατοπίνακα [25, 15, –7, 10, 3]

1ο ΒήμαΟ αλγόριθμος έχει ως στόχο να βρει το μικρότερο στοιχείο και να το τοποθετήσει στην πρώτη θέση.

Αρχίζοντας από το τελευταίο στοιχείο του πίνακα, συγκρίνουμε τα στοιχεία ανά δυο .

τα αντιμεταθέτουμε, αν χρειασθεί, ώστε το μικρότερο από τα δύο στοιχεία να βρεθεί πρώτο.

310-71525

Στη συνέχεια συγκρίνουμε το 4ο με το 3ο και αν χρειάζεται κάνουμε αντιμετάθεση τιμών.

Ανά 2

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

Page 6: Μέθοδος ευθείας ανταλλαγής στοιχείων (φυσαλίδα)

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝΚεφάλαιο 3ο

Βασίζεται στις διαδοχικές αντιμεταθέσεις των στοιχείων ώστε τα στοιχεία με τις μικρότερες τιμές να ανεβαίνουν στις πρώτες θέσεις του πίνακα. Τα μικρότερα (ή κατά μια έννοια τα ελαφρύτερα), ακολουθούν την πορεία μιας φυσαλίδας. Για να γίνει αντιληπτός ο αλγόριθμος θα χρησιμοποιήσουμε τον ακόλουθο μονοδιάστατοπίνακα [25, 15, –7, 10, 3]

1ο ΒήμαΟ αλγόριθμος έχει ως στόχο να βρει το μικρότερο στοιχείο και να το τοποθετήσει στην πρώτη θέση.

Αρχίζοντας από το τελευταίο στοιχείο του πίνακα, συγκρίνουμε τα στοιχεία ανά δυο .

τα αντιμεταθέτουμε, αν χρειασθεί, ώστε το μικρότερο από τα δύο στοιχεία να βρεθεί πρώτο.

310-71525

Στη συνέχεια συγκρίνουμε το 4ο με το 3ο και αν χρειάζεται κάνουμε αντιμετάθεση τιμών.

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

Page 7: Μέθοδος ευθείας ανταλλαγής στοιχείων (φυσαλίδα)

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝΚεφάλαιο 3ο

Βασίζεται στις διαδοχικές αντιμεταθέσεις των στοιχείων ώστε τα στοιχεία με τις μικρότερες τιμές να ανεβαίνουν στις πρώτες θέσεις του πίνακα. Τα μικρότερα (ή κατά μια έννοια τα ελαφρύτερα), ακολουθούν την πορεία μιας φυσαλίδας. Για να γίνει αντιληπτός ο αλγόριθμος θα χρησιμοποιήσουμε τον ακόλουθο μονοδιάστατοπίνακα [25, 15, –7, 10, 3]

1ο ΒήμαΟ αλγόριθμος έχει ως στόχο να βρει το μικρότερο στοιχείο και να το τοποθετήσει στην πρώτη θέση.

Αρχίζοντας από το τελευταίο στοιχείο του πίνακα, συγκρίνουμε τα στοιχεία ανά δυο .

τα αντιμεταθέτουμε, αν χρειασθεί, ώστε το μικρότερο από τα δύο στοιχεία να βρεθεί πρώτο.

103-71525

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

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

Στη συνέχεια συγκρίνουμε το 4ο με το 3ο και αν χρειάζεται κάνουμε αντιμετάθεση τιμών.

10-7

Page 8: Μέθοδος ευθείας ανταλλαγής στοιχείων (φυσαλίδα)

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝΚεφάλαιο 3ο

Βασίζεται στις διαδοχικές αντιμεταθέσεις των στοιχείων ώστε τα στοιχεία με τις μικρότερες τιμές να ανεβαίνουν στις πρώτες θέσεις του πίνακα. Τα μικρότερα (ή κατά μια έννοια τα ελαφρύτερα), ακολουθούν την πορεία μιας φυσαλίδας. Για να γίνει αντιληπτός ο αλγόριθμος θα χρησιμοποιήσουμε τον ακόλουθο μονοδιάστατοπίνακα [25, 15, –7, 10, 3]

1ο ΒήμαΟ αλγόριθμος έχει ως στόχο να βρει το μικρότερο στοιχείο και να το τοποθετήσει στην πρώτη θέση.

Αρχίζοντας από το τελευταίο στοιχείο του πίνακα, συγκρίνουμε τα στοιχεία ανά δυο .

τα αντιμεταθέτουμε, αν χρειασθεί, ώστε το μικρότερο από τα δύο στοιχεία να βρεθεί πρώτο.

103-71525

Ανά 2

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

Στη συνέχεια συγκρίνουμε το 4ο με το 3ο και αν χρειάζεται κάνουμε αντιμετάθεση τιμών.

Page 9: Μέθοδος ευθείας ανταλλαγής στοιχείων (φυσαλίδα)

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝΚεφάλαιο 3ο

Βασίζεται στις διαδοχικές αντιμεταθέσεις των στοιχείων ώστε τα στοιχεία με τις μικρότερες τιμές να ανεβαίνουν στις πρώτες θέσεις του πίνακα. Τα μικρότερα (ή κατά μια έννοια τα ελαφρύτερα), ακολουθούν την πορεία μιας φυσαλίδας. Για να γίνει αντιληπτός ο αλγόριθμος θα χρησιμοποιήσουμε τον ακόλουθο μονοδιάστατοπίνακα [25, 15, –7, 10, 3]

1ο ΒήμαΟ αλγόριθμος έχει ως στόχο να βρει το μικρότερο στοιχείο και να το τοποθετήσει στην πρώτη θέση.

Αρχίζοντας από το τελευταίο στοιχείο του πίνακα, συγκρίνουμε τα στοιχεία ανά δυο .

τα αντιμεταθέτουμε, αν χρειασθεί, ώστε το μικρότερο από τα δύο στοιχεία να βρεθεί πρώτο.

103-71525

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

Στη συνέχεια συγκρίνουμε το 4ο με το 3ο και αν χρειάζεται κάνουμε αντιμετάθεση τιμών.Στη συνέχεια συγκρίνουμε το 3ο με το 2ο και αν χρειάζεται κάνουμε αντιμετάθεση τιμών.

Page 10: Μέθοδος ευθείας ανταλλαγής στοιχείων (φυσαλίδα)

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝΚεφάλαιο 3ο

Βασίζεται στις διαδοχικές αντιμεταθέσεις των στοιχείων ώστε τα στοιχεία με τις μικρότερες τιμές να ανεβαίνουν στις πρώτες θέσεις του πίνακα. Τα μικρότερα (ή κατά μια έννοια τα ελαφρύτερα), ακολουθούν την πορεία μιας φυσαλίδας. Για να γίνει αντιληπτός ο αλγόριθμος θα χρησιμοποιήσουμε τον ακόλουθο μονοδιάστατοπίνακα [25, 15, –7, 10, 3]

1ο ΒήμαΟ αλγόριθμος έχει ως στόχο να βρει το μικρότερο στοιχείο και να το τοποθετήσει στην πρώτη θέση.

Αρχίζοντας από το τελευταίο στοιχείο του πίνακα, συγκρίνουμε τα στοιχεία ανά δυο .

τα αντιμεταθέτουμε, αν χρειασθεί, ώστε το μικρότερο από τα δύο στοιχεία να βρεθεί πρώτο.

10315-725

Ανά 2

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

Στη συνέχεια συγκρίνουμε το 4ο με το 3ο και αν χρειάζεται κάνουμε αντιμετάθεση τιμών.Στη συνέχεια συγκρίνουμε το 3ο με το 2ο και αν χρειάζεται κάνουμε αντιμετάθεση τιμών.

Page 11: Μέθοδος ευθείας ανταλλαγής στοιχείων (φυσαλίδα)

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝΚεφάλαιο 3ο

Βασίζεται στις διαδοχικές αντιμεταθέσεις των στοιχείων ώστε τα στοιχεία με τις μικρότερες τιμές να ανεβαίνουν στις πρώτες θέσεις του πίνακα. Τα μικρότερα (ή κατά μια έννοια τα ελαφρύτερα), ακολουθούν την πορεία μιας φυσαλίδας. Για να γίνει αντιληπτός ο αλγόριθμος θα χρησιμοποιήσουμε τον ακόλουθο μονοδιάστατοπίνακα [25, 15, –7, 10, 3]

1ο ΒήμαΟ αλγόριθμος έχει ως στόχο να βρει το μικρότερο στοιχείο και να το τοποθετήσει στην πρώτη θέση.

Αρχίζοντας από το τελευταίο στοιχείο του πίνακα, συγκρίνουμε τα στοιχεία ανά δυο .

τα αντιμεταθέτουμε, αν χρειασθεί, ώστε το μικρότερο από τα δύο στοιχεία να βρεθεί πρώτο.

10315-725

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

Στη συνέχεια συγκρίνουμε το 4ο με το 3ο και αν χρειάζεται κάνουμε αντιμετάθεση τιμών.Στη συνέχεια συγκρίνουμε το 3ο με το 2ο και αν χρειάζεται κάνουμε αντιμετάθεση τιμών.

Page 12: Μέθοδος ευθείας ανταλλαγής στοιχείων (φυσαλίδα)

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝΚεφάλαιο 3ο

Βασίζεται στις διαδοχικές αντιμεταθέσεις των στοιχείων ώστε τα στοιχεία με τις μικρότερες τιμές να ανεβαίνουν στις πρώτες θέσεις του πίνακα. Τα μικρότερα (ή κατά μια έννοια τα ελαφρύτερα), ακολουθούν την πορεία μιας φυσαλίδας. Για να γίνει αντιληπτός ο αλγόριθμος θα χρησιμοποιήσουμε τον ακόλουθο μονοδιάστατοπίνακα [25, 15, –7, 10, 3]

1031525-7

2ο ΒήμαΔεν ασχολούμαστε με το πρώτο στοιχείο. Διότι αυτό είναι το μικρότερο στοιχείο.

Ο αλγόριθμος προσπαθεί να βρει το αμέσως επόμενο μικρότερο στοιχείο (min2)

min2

και να το τοποθετήσει στη δεύτερη θέση

Αρχίζοντας πάλι από το τελευταίο στοιχείο του πίνακα, συγκρίνουμε τα στοιχεία ανά δυο

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

min1

Page 13: Μέθοδος ευθείας ανταλλαγής στοιχείων (φυσαλίδα)

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝΚεφάλαιο 3ο

Βασίζεται στις διαδοχικές αντιμεταθέσεις των στοιχείων ώστε τα στοιχεία με τις μικρότερες τιμές να ανεβαίνουν στις πρώτες θέσεις του πίνακα. Τα μικρότερα (ή κατά μια έννοια τα ελαφρύτερα), ακολουθούν την πορεία μιας φυσαλίδας. Για να γίνει αντιληπτός ο αλγόριθμος θα χρησιμοποιήσουμε τον ακόλουθο μονοδιάστατοπίνακα [25, 15, –7, 10, 3]

1031525-7

2ο ΒήμαΔεν ασχολούμαστε με το πρώτο στοιχείο. Διότι αυτό είναι το μικρότερο στοιχείο.

Ο αλγόριθμος προσπαθεί να βρει το αμέσως επόμενο μικρότερο στοιχείο (min2)

min2

και να το τοποθετήσει στη δεύτερη θέση

Αρχίζοντας πάλι από το τελευταίο στοιχείο του πίνακα, συγκρίνουμε τα στοιχεία ανά δυο

Ανά 2

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

min1

Page 14: Μέθοδος ευθείας ανταλλαγής στοιχείων (φυσαλίδα)

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝΚεφάλαιο 3ο

Βασίζεται στις διαδοχικές αντιμεταθέσεις των στοιχείων ώστε τα στοιχεία με τις μικρότερες τιμές να ανεβαίνουν στις πρώτες θέσεις του πίνακα. Τα μικρότερα (ή κατά μια έννοια τα ελαφρύτερα), ακολουθούν την πορεία μιας φυσαλίδας. Για να γίνει αντιληπτός ο αλγόριθμος θα χρησιμοποιήσουμε τον ακόλουθο μονοδιάστατοπίνακα [25, 15, –7, 10, 3]

1031525-7

2ο ΒήμαΔεν ασχολούμαστε με το πρώτο στοιχείο. Διότι αυτό είναι το μικρότερο στοιχείο.

Ο αλγόριθμος προσπαθεί να βρει το αμέσως επόμενο μικρότερο στοιχείο (min2)και να το τοποθετήσει στη δεύτερη θέση

Αρχίζοντας πάλι από το τελευταίο στοιχείο του πίνακα, συγκρίνουμε τα στοιχεία ανά δυο

Το 4ο στοιχείο του πίνακα με τιμή 3 είναι μικρότερο από το 5ο στοιχείο με τιμή 10 Οπότε παραμένουν ως έχουν και δεν κάνουμε αντιμετάθεση.

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

Page 15: Μέθοδος ευθείας ανταλλαγής στοιχείων (φυσαλίδα)

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝΚεφάλαιο 3ο

Βασίζεται στις διαδοχικές αντιμεταθέσεις των στοιχείων ώστε τα στοιχεία με τις μικρότερες τιμές να ανεβαίνουν στις πρώτες θέσεις του πίνακα. Τα μικρότερα (ή κατά μια έννοια τα ελαφρύτερα), ακολουθούν την πορεία μιας φυσαλίδας. Για να γίνει αντιληπτός ο αλγόριθμος θα χρησιμοποιήσουμε τον ακόλουθο μονοδιάστατοπίνακα [25, 15, –7, 10, 3]

1031525-7

2ο ΒήμαΔεν ασχολούμαστε με το πρώτο στοιχείο. Διότι αυτό είναι το μικρότερο στοιχείο.

Ο αλγόριθμος προσπαθεί να βρει το αμέσως επόμενο μικρότερο στοιχείο (min2)και να το τοποθετήσει στη δεύτερη θέση

Αρχίζοντας πάλι από το τελευταίο στοιχείο του πίνακα, συγκρίνουμε τα στοιχεία ανά δυο

Το 4ο στοιχείο του πίνακα με τιμή 3 είναι μικρότερο από το 5ο στοιχείο με τιμή 10 Οπότε παραμένουν ως έχουν.

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

Page 16: Μέθοδος ευθείας ανταλλαγής στοιχείων (φυσαλίδα)

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝΚεφάλαιο 3ο

Βασίζεται στις διαδοχικές αντιμεταθέσεις των στοιχείων ώστε τα στοιχεία με τις μικρότερες τιμές να ανεβαίνουν στις πρώτες θέσεις του πίνακα. Τα μικρότερα (ή κατά μια έννοια τα ελαφρύτερα), ακολουθούν την πορεία μιας φυσαλίδας. Για να γίνει αντιληπτός ο αλγόριθμος θα χρησιμοποιήσουμε τον ακόλουθο μονοδιάστατοπίνακα [25, 15, –7, 10, 3]

1031525-7

2ο ΒήμαΣυγκρίνουμε τα επόμενα 2 στοιχεία.

Ανά 2

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

Page 17: Μέθοδος ευθείας ανταλλαγής στοιχείων (φυσαλίδα)

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝΚεφάλαιο 3ο

Βασίζεται στις διαδοχικές αντιμεταθέσεις των στοιχείων ώστε τα στοιχεία με τις μικρότερες τιμές να ανεβαίνουν στις πρώτες θέσεις του πίνακα. Τα μικρότερα (ή κατά μια έννοια τα ελαφρύτερα), ακολουθούν την πορεία μιας φυσαλίδας. Για να γίνει αντιληπτός ο αλγόριθμος θα χρησιμοποιήσουμε τον ακόλουθο μονοδιάστατοπίνακα [25, 15, –7, 10, 3]

1031525-7

2ο ΒήμαΣυγκρίνουμε τα επόμενα 2 στοιχεία.

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

Page 18: Μέθοδος ευθείας ανταλλαγής στοιχείων (φυσαλίδα)

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝΚεφάλαιο 3ο

Βασίζεται στις διαδοχικές αντιμεταθέσεις των στοιχείων ώστε τα στοιχεία με τις μικρότερες τιμές να ανεβαίνουν στις πρώτες θέσεις του πίνακα. Τα μικρότερα (ή κατά μια έννοια τα ελαφρύτερα), ακολουθούν την πορεία μιας φυσαλίδας. Για να γίνει αντιληπτός ο αλγόριθμος θα χρησιμοποιήσουμε τον ακόλουθο μονοδιάστατοπίνακα [25, 15, –7, 10, 3]

1015325-7

2ο ΒήμαΣυγκρίνουμε τα επόμενα 2 στοιχεία.

Ανά 2

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

Page 19: Μέθοδος ευθείας ανταλλαγής στοιχείων (φυσαλίδα)

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝΚεφάλαιο 3ο

Βασίζεται στις διαδοχικές αντιμεταθέσεις των στοιχείων ώστε τα στοιχεία με τις μικρότερες τιμές να ανεβαίνουν στις πρώτες θέσεις του πίνακα. Τα μικρότερα (ή κατά μια έννοια τα ελαφρύτερα), ακολουθούν την πορεία μιας φυσαλίδας. Για να γίνει αντιληπτός ο αλγόριθμος θα χρησιμοποιήσουμε τον ακόλουθο μονοδιάστατοπίνακα [25, 15, –7, 10, 3]

1015325-7

2ο ΒήμαΣυγκρίνουμε τα επόμενα 2 στοιχεία.

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

Page 20: Μέθοδος ευθείας ανταλλαγής στοιχείων (φυσαλίδα)

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝΚεφάλαιο 3ο

Βασίζεται στις διαδοχικές αντιμεταθέσεις των στοιχείων ώστε τα στοιχεία με τις μικρότερες τιμές να ανεβαίνουν στις πρώτες θέσεις του πίνακα. Τα μικρότερα (ή κατά μια έννοια τα ελαφρύτερα), ακολουθούν την πορεία μιας φυσαλίδας. Για να γίνει αντιληπτός ο αλγόριθμος θα χρησιμοποιήσουμε τον ακόλουθο μονοδιάστατοπίνακα [25, 15, –7, 10, 3]

1015253-7

3ο Βήμαπροσπαθούμε να βρούμε την αμέσως μικρότερη τιμή,(min3) από τις 3 μη ταξινομημένες τιμές.

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

min1 min2

min3

Page 21: Μέθοδος ευθείας ανταλλαγής στοιχείων (φυσαλίδα)

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝΚεφάλαιο 3ο

Βασίζεται στις διαδοχικές αντιμεταθέσεις των στοιχείων ώστε τα στοιχεία με τις μικρότερες τιμές να ανεβαίνουν στις πρώτες θέσεις του πίνακα. Τα μικρότερα (ή κατά μια έννοια τα ελαφρύτερα), ακολουθούν την πορεία μιας φυσαλίδας. Για να γίνει αντιληπτός ο αλγόριθμος θα χρησιμοποιήσουμε τον ακόλουθο μονοδιάστατοπίνακα [25, 15, –7, 10, 3]

1015253-7

3ο Βήμαπροσπαθούμε να βρούμε την αμέσως μικρότερη τιμή,(min3) από τις 3 μη ταξινομημένες τιμές.

Αρχίζοντας πάλι από το τελευταίο στοιχείο του πίνακα, συγκρίνουμε τα στοιχεία ανά δυο Το 5ο στοιχείο του πίνακα με τιμή 10 είναι μικρότερο από το 4ο στοιχείο με τιμή 15, άρα γίνεται αντιμετάθεση τιμών .

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

Ανά 2

Page 22: Μέθοδος ευθείας ανταλλαγής στοιχείων (φυσαλίδα)

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝΚεφάλαιο 3ο

Βασίζεται στις διαδοχικές αντιμεταθέσεις των στοιχείων ώστε τα στοιχεία με τις μικρότερες τιμές να ανεβαίνουν στις πρώτες θέσεις του πίνακα. Τα μικρότερα (ή κατά μια έννοια τα ελαφρύτερα), ακολουθούν την πορεία μιας φυσαλίδας. Για να γίνει αντιληπτός ο αλγόριθμος θα χρησιμοποιήσουμε τον ακόλουθο μονοδιάστατοπίνακα [25, 15, –7, 10, 3]

1015253-7

3ο Βήμαπροσπαθούμε να βρούμε την αμέσως μικρότερη τιμή,(min3) από τις 3 μη ταξινομημένες τιμές.

Αρχίζοντας πάλι από το τελευταίο στοιχείο του πίνακα, συγκρίνουμε τα στοιχεία ανά δυο Το 5ο στοιχείο του πίνακα με τιμή 10 είναι μικρότερο από το 4ο στοιχείο με τιμή 15, άρα γίνεται αντιμετάθεση τιμών .

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

Page 23: Μέθοδος ευθείας ανταλλαγής στοιχείων (φυσαλίδα)

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝΚεφάλαιο 3ο

Βασίζεται στις διαδοχικές αντιμεταθέσεις των στοιχείων ώστε τα στοιχεία με τις μικρότερες τιμές να ανεβαίνουν στις πρώτες θέσεις του πίνακα. Τα μικρότερα (ή κατά μια έννοια τα ελαφρύτερα), ακολουθούν την πορεία μιας φυσαλίδας. Για να γίνει αντιληπτός ο αλγόριθμος θα χρησιμοποιήσουμε τον ακόλουθο μονοδιάστατοπίνακα [25, 15, –7, 10, 3]

1510253-7

3ο Βήμαπροσπαθούμε να βρούμε την αμέσως μικρότερη τιμή,(min3) από τις 3 μη ταξινομημένες τιμές.

Αρχίζοντας πάλι από το τελευταίο στοιχείο του πίνακα, συγκρίνουμε τα στοιχεία ανά δυο Το 5ο στοιχείο του πίνακα με τιμή 10 είναι μικρότερο από το 4ο στοιχείο με τιμή 15, άρα γίνεται αντιμετάθεση τιμών .

Ανά 2

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

Page 24: Μέθοδος ευθείας ανταλλαγής στοιχείων (φυσαλίδα)

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝΚεφάλαιο 3ο

Βασίζεται στις διαδοχικές αντιμεταθέσεις των στοιχείων ώστε τα στοιχεία με τις μικρότερες τιμές να ανεβαίνουν στις πρώτες θέσεις του πίνακα. Τα μικρότερα (ή κατά μια έννοια τα ελαφρύτερα), ακολουθούν την πορεία μιας φυσαλίδας. Για να γίνει αντιληπτός ο αλγόριθμος θα χρησιμοποιήσουμε τον ακόλουθο μονοδιάστατοπίνακα [25, 15, –7, 10, 3]

1510253-7

3ο Βήμαπροσπαθούμε να βρούμε την αμέσως μικρότερη τιμή,(min3) από τις 3 μη ταξινομημένες τιμές.

Αρχίζοντας πάλι από το τελευταίο στοιχείο του πίνακα, συγκρίνουμε τα στοιχεία ανά δυο Το 5ο στοιχείο του πίνακα με τιμή 10 είναι μικρότερο από το 4ο στοιχείο με τιμή 15, άρα γίνεται αντιμετάθεση τιμών .

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

Page 25: Μέθοδος ευθείας ανταλλαγής στοιχείων (φυσαλίδα)

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝΚεφάλαιο 3ο

Βασίζεται στις διαδοχικές αντιμεταθέσεις των στοιχείων ώστε τα στοιχεία με τις μικρότερες τιμές να ανεβαίνουν στις πρώτες θέσεις του πίνακα. Τα μικρότερα (ή κατά μια έννοια τα ελαφρύτερα), ακολουθούν την πορεία μιας φυσαλίδας. Για να γίνει αντιληπτός ο αλγόριθμος θα χρησιμοποιήσουμε τον ακόλουθο μονοδιάστατοπίνακα [25, 15, –7, 10, 3]

1525103-7

4ο Βήμαπροσπαθούμε να βρούμε την αμέσως μικρότερη τιμή,(min4) από τις 2 μη ταξινομημένες τιμές.

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

min1 min2 min3

min4

Page 26: Μέθοδος ευθείας ανταλλαγής στοιχείων (φυσαλίδα)

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝΚεφάλαιο 3ο

Βασίζεται στις διαδοχικές αντιμεταθέσεις των στοιχείων ώστε τα στοιχεία με τις μικρότερες τιμές να ανεβαίνουν στις πρώτες θέσεις του πίνακα. Τα μικρότερα (ή κατά μια έννοια τα ελαφρύτερα), ακολουθούν την πορεία μιας φυσαλίδας. Για να γίνει αντιληπτός ο αλγόριθμος θα χρησιμοποιήσουμε τον ακόλουθο μονοδιάστατοπίνακα [25, 15, –7, 10, 3]

1525103-7

4ο Βήμαπροσπαθούμε να βρούμε την αμέσως μικρότερη τιμή,(min4) από τις 2 μη ταξινομημένες τιμές.

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

Ανά 2

Page 27: Μέθοδος ευθείας ανταλλαγής στοιχείων (φυσαλίδα)

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝΚεφάλαιο 3ο

Βασίζεται στις διαδοχικές αντιμεταθέσεις των στοιχείων ώστε τα στοιχεία με τις μικρότερες τιμές να ανεβαίνουν στις πρώτες θέσεις του πίνακα. Τα μικρότερα (ή κατά μια έννοια τα ελαφρύτερα), ακολουθούν την πορεία μιας φυσαλίδας. Για να γίνει αντιληπτός ο αλγόριθμος θα χρησιμοποιήσουμε τον ακόλουθο μονοδιάστατοπίνακα [25, 15, –7, 10, 3]

1525103-7

4ο Βήμαπροσπαθούμε να βρούμε την αμέσως μικρότερη τιμή,(min4) από τις 2 μη ταξινομημένες τιμές.

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

Page 28: Μέθοδος ευθείας ανταλλαγής στοιχείων (φυσαλίδα)

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝΚεφάλαιο 3ο

Βασίζεται στις διαδοχικές αντιμεταθέσεις των στοιχείων ώστε τα στοιχεία με τις μικρότερες τιμές να ανεβαίνουν στις πρώτες θέσεις του πίνακα. Τα μικρότερα (ή κατά μια έννοια τα ελαφρύτερα), ακολουθούν την πορεία μιας φυσαλίδας. Για να γίνει αντιληπτός ο αλγόριθμος θα χρησιμοποιήσουμε τον ακόλουθο μονοδιάστατοπίνακα [25, 15, –7, 10, 3]

15 25103-7

4ο Βήμαπροσπαθούμε να βρούμε την αμέσως μικρότερη τιμή,(min4) από τις 2 μη ταξινομημένες τιμές.

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

Page 29: Μέθοδος ευθείας ανταλλαγής στοιχείων (φυσαλίδα)

Συνολικά έχουμε την εξής εικόνα:

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝΚεφάλαιο 3ο

310-71525

103-71525

103-71525

103

15-725

103

1525-7

1ο Βήμα

Page 30: Μέθοδος ευθείας ανταλλαγής στοιχείων (φυσαλίδα)

Συνολικά έχουμε την εξής εικόνα:

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝΚεφάλαιο 3ο

310-71525

103-71525

103-71525

103

15-725

103

1525-7

1ο Βήμα

Page 31: Μέθοδος ευθείας ανταλλαγής στοιχείων (φυσαλίδα)

Συνολικά έχουμε την εξής εικόνα:

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝΚεφάλαιο 3ο

310-71525

103-71525

103-71525

103

15-725

103

1525-7

1ο Βήμα

Page 32: Μέθοδος ευθείας ανταλλαγής στοιχείων (φυσαλίδα)

Συνολικά έχουμε την εξής εικόνα:

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝΚεφάλαιο 3ο

310-71525

103-71525

103-71525

103

15-725

103

1525-7

1ο Βήμα

Page 33: Μέθοδος ευθείας ανταλλαγής στοιχείων (φυσαλίδα)

Συνολικά έχουμε την εξής εικόνα:

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝΚεφάλαιο 3ο

310-71525

103-71525

103-71525

103

15-725

103

1525-7

1ο Βήμα 2ο Βήμα

103

1525-7

103

1525-7

10153

25-7

1015253-7

Page 34: Μέθοδος ευθείας ανταλλαγής στοιχείων (φυσαλίδα)

Συνολικά έχουμε την εξής εικόνα:

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝΚεφάλαιο 3ο

310-71525

103-71525

103-71525

103

15-725

103

1525-7

1ο Βήμα 2ο Βήμα

103

1525-7

103

1525-7

10153

25-7

1015253-7

Page 35: Μέθοδος ευθείας ανταλλαγής στοιχείων (φυσαλίδα)

Συνολικά έχουμε την εξής εικόνα:

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝΚεφάλαιο 3ο

310-71525

103-71525

103-71525

103

15-725

103

1525-7

1ο Βήμα 2ο Βήμα

103

1525-7

103

1525-7

10153

25-7

1015253-7

Page 36: Μέθοδος ευθείας ανταλλαγής στοιχείων (φυσαλίδα)

Συνολικά έχουμε την εξής εικόνα:

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝΚεφάλαιο 3ο

310-71525

103-71525

103-71525

103

15-725

103

1525-7

1ο Βήμα 2ο Βήμα

103

1525-7

103

1525-7

10153

25-7

1015253-7

3ο Βήμα

1015253-7

1510253-7

1525103-7

Page 37: Μέθοδος ευθείας ανταλλαγής στοιχείων (φυσαλίδα)

Συνολικά έχουμε την εξής εικόνα:

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝΚεφάλαιο 3ο

310-71525

103-71525

103-71525

103

15-725

103

1525-7

1ο Βήμα 2ο Βήμα

103

1525-7

103

1525-7

10153

25-7

1015253-7

3ο Βήμα

1015253-7

1510253-7

1525103-7

Page 38: Μέθοδος ευθείας ανταλλαγής στοιχείων (φυσαλίδα)

Συνολικά έχουμε την εξής εικόνα:

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝΚεφάλαιο 3ο

310-71525

103-71525

103-71525

103

15-725

103

1525-7

1ο Βήμα 2ο Βήμα

103

1525-7

103

1525-7

10153

25-7

1015253-7

3ο Βήμα

1015253-7

1510253-7

1525103-7

4ο Βήμα

1525103-7

2515103-7

Page 39: Μέθοδος ευθείας ανταλλαγής στοιχείων (φυσαλίδα)

Συνολικά έχουμε την εξής εικόνα:

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝΚεφάλαιο 3ο

310-71525

103-71525

103-71525

103

15-725

103

1525-7

1ο Βήμα 2ο Βήμα

103

1525-7

103

1525-7

10153

25-7

1015253-7

3ο Βήμα

1015253-7

1510253-7

1525103-7

4ο Βήμα

1525103-7

2515103-7

Από το παράδειγμα μπορούμε να εξάγουμε τα ακόλουθα συμπεράσματα, σχετικά με τη λειτουργία της μεθόδου της ταξινόμησης:1. Για να πάει κάθε στοιχείο στη τελική του θέση, έγιναν συνολικά τόσα βήματα όσα τα στοιχεία του πίνακα μείον ένα. Συνεπώς, αν είχαμε Ν

στοιχεία θα γινόντουσαν Ν-1 βήματα ή διαφορετικά Ν-1 επαναλήψεις της ίδιας διαδικασίας.

2. Σε κάθε βήμα γινόταν διαφορετικός αριθμός συγκρίσεων των ζευγών των αριθμών. Στο 1ο βήμα έγιναν 4 συγκρίσεις, στο 2ο βήμα 3συγκρίσεις, στο 3ο βήμα 2 συγκρίσεις και στο 4ο βήμα 1 σύγκριση. Αν προσπαθήσουμε να το εκφράσουμε αλγοριθμικά ως μια επανάληψη, η επανάληψη θα γίνεται κάθε φορά όσα και τα εναπομείναντα αταξινόμητα στοιχεία μείον ένα.

Page 40: Μέθοδος ευθείας ανταλλαγής στοιχείων (φυσαλίδα)

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝΚεφάλαιο 3ο

Αλγόριθμος Φυσαλίδας.

Ο αλγόριθμοςείναι οακόλουθος:

Αλγόριθμος Φυσαλίδα

Τέλος Φυσαλίδα

Για i από 1 μέχρι ΝΕμφάνισε “Δώσε το στοιχείο ”, iΔιάβασε Π[i]

Τέλος_επανάληψης

Εμφάνισε “Δώσε το πλήθος των στοιχείων του πίνακα.”Διάβασε Ν

Για i από 2 μέχρι ΝΓια j από N μέχρι i με_βήμα –1

Αν Π[j-1] > Π[j] τότε

Αντιμετάθεσε Π[j-1], Π[j]Τέλος_αν

Τέλος_επανάληψηςΤέλος_επανάληψης

Για i από 1 μέχρι ΝΕμφάνισε Π[i]

Τέλος_επανάληψης

Η εντολή Αντιμετάθεσε Π[j-1],Π[j]αντιμεταθέτει τις τιμές των στοιχείων.

Θα μπορούσε να γραφεί και ως εξής:

temp←Π[ j-1]Π[ j-1] ←Π[ j ]Π[ j] ← temp

Page 41: Μέθοδος ευθείας ανταλλαγής στοιχείων (φυσαλίδα)

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝΚεφάλαιο 3ο

Page 42: Μέθοδος ευθείας ανταλλαγής στοιχείων (φυσαλίδα)

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝΚεφάλαιο 3ο

Να γραφεί αλγόριθμος που θα διαβάζει ένα πίνακα 100 θέσεων και θα εμφανίζει τους 5 μεγαλύτερους αριθμούς του πίνακα.

Όταν είχαμε να βρούμε το μέγιστο στοιχείο ενός πίνακα , ελέγχαμε ένα προς ένα τα στοιχεία του πίνακα, Και τελικά καταλήγαμε στο μέγιστο.Γενικά όταν μας ζητηθεί να βρούμε τα x μεγαλύτερα ή μικρότερα στοιχεία ενός

πίνακα, • πρώτα θα τον ταξινομούμε και• κατόπιν θα εμφανίζουμε τα στοιχεία που μας έχουν ζητηθεί.Αφού ταξινομηθεί ο πίνακας σε αύξουσα σειρά , πρέπει να εμφανίσουμε τα στοιχείαΠ[100],Π[99],Π[98],Π[97],Π[96].(5 στοιχεία )Δηλ τα 5 μεγαλύτερα στοιχεία αρχίζοντας από τον απολύτως μεγαλύτερο αριθμό.Η εμφάνιση των στοιχείων θα γίνει με τη βοήθεια μιας επανάληψης από το 100 μέχρι 96 με βήμα -1.

3.35

Page 43: Μέθοδος ευθείας ανταλλαγής στοιχείων (φυσαλίδα)

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝΚεφάλαιο 3ο

Ο αλγόριθμοςείναι οακόλουθος:

Αλγόριθμος Μέγιστοι_Αριθμοί_Πίνακα

Τέλος Μέγιστοι_Αριθμοί_Πίνακα

Για i από 1 μέχρι 100Εμφάνισε “Δώσε το στοιχείο ”, iΔιάβασε Π[i]

Τέλος_επανάληψηςΓια i από 2 μέχρι 100

Για j από 100 μέχρι i με_βήμα –1Αν Π[j-1] > Π[j] τότε

Αντιμετάθεσε Π[j-1], Π[j]Τέλος_αν

Τέλος_επανάληψηςΤέλος_επανάληψης

Για i από 100 μέχρι 96 με_βήμα -1Εμφάνισε Π[i]

Τέλος_επανάληψης

Εμφάνισε “Τα 5 μεγαλύτερα στοιχεία του πίνακα είναι”

Είναι ο ίδιος ο αλγόριθμος μετη φυσαλίδα.

Σημείωση: Αν στο τμήμα της ταξινόμησης του πίνακα , αλλάξω το Π[j-1] > Π[j] με Π[j-1] < Π[j] ,Τότε ο πίνακας Π ταξινομείται σε φθίνουσα σειρά.Οπότε η τελευταία επανάληψη εμφάνισης των 5 μεγαλύτερων αριθμών είναι θα εκτελούνταν από 1 ως 5.

από 1 ως 5

3.35

Page 44: Μέθοδος ευθείας ανταλλαγής στοιχείων (φυσαλίδα)

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝΚεφάλαιο 3ο

Μια οικολογική οργάνωση διαθέτει στοιχεία για το ποσοστό δασών για 50 διαφορετικές χώρες. Χρειάζεται να πάρει απόφαση για να διοργανώσει μια εκδήλωση διαμαρτυρίας στις 10 χώρες που έχουν το χαμηλότερο ποσοστό δασών . Να δοθεί αλγόριθμος που θα ταξινομεί τα ποσοστά δασών των χωρών με χρήση της μεθόδου ευθείας ανταλλαγής και θα εκτυπώνει τις 10 χώρες στις οποίες θα διοργανωθούν οι εκδηλώσεις.Χρησιμοποιούμε 2 πίνακες για να αποθηκεύσουμε :1. Τα ονόματα των χωρών και2. Τα ποσοστά των δασών.Κατόπιν για να βρούμε τα 10 χαμηλότερα ποσοστά πρέπει ,να ταξινομήσουμε τονπίνακα με τα ποσοστά.Προσοχή όμως σε μια σημαντική λεπτομέρεια.Ας πάρουμε τους 2 πρώτους πίνακες:

ΙταλίαΣουηδίαΙσπανίαΓερμανία

Ονόματα Χωρών

15552535

Ποσοστά Δασών

15253555

Ταξινομημένος Πίνακας Ποσοστών δασών

Προκύπτει δηλαδή μια λανθασμένη αντιστοιχία.Για να αποφευχθεί αυτό το πρόβλημα όταν κάνουμε αντιμετάθεση των στοιχείων τουπίνακα των ποσοστών , θα πρέπει να κάνουμε αντιμετάθεση και των αντιστοίχωνστοιχείων του πίνακα με τα ονόματα χωρών.

3.36

Page 45: Μέθοδος ευθείας ανταλλαγής στοιχείων (φυσαλίδα)

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝΚεφάλαιο 3ο

Για παράδειγμα:

ΙταλίαΣουηδίαΙσπανίαΓερμανία

Ονόματα Χωρών

15552535

Ποσοστά Δασών

Όταν γίνει αντιμετάθεση του 2ου στοιχείου με το 3ο στοιχείο στο πίνακα των ποσοστών.Θα γίνει αντιμετάθεση και στον πίνακα με τα ονόματα χωρών.

3.36

Page 46: Μέθοδος ευθείας ανταλλαγής στοιχείων (φυσαλίδα)

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝΚεφάλαιο 3ο

Για παράδειγμα:

ΙταλίαΙσπανίαΣουηδίαΓερμανία

Ονόματα Χωρών

15255535

Ποσοστά Δασών

Όταν γίνει αντιμετάθεση του 2ου στοιχείου με το 3ο στοιχείο στο πίνακα των ποσοστών.Θα γίνει αντιμετάθεση και στον πίνακα με τα ονόματα χωρών.

Όταν γίνει αντιμετάθεση του 3ου στοιχείου με το 4ο στοιχείο στο πίνακα των ποσοστών.

Θα γίνει πάλι αντιμετάθεση και στον πίνακα με τα ονόματα χωρών.

Με αυτό τον τρόπο θα υπάρχει αντιστοιχία μεταξύ των δύο πινάκων.Κατόπιν αρκεί να εμφανίσουμε τα ονόματα των πρώτων 10 χωρών του πίνακα που θα

προκύψει..

3.36

Page 47: Μέθοδος ευθείας ανταλλαγής στοιχείων (φυσαλίδα)

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝΚεφάλαιο 3ο

Ο αλγόριθμοςείναι οακόλουθος:

Αλγόριθμος Ποσοστό_Δασών

Τέλος Ποσοστό_Δασών

Για i από 1 μέχρι 50Εμφάνισε “Δώσε το όνομα της χώρας ”, iΔιάβασε Χώρα [i]

Τέλος_επανάληψης

Εμφάνισε “Δώσε το ποσοστό της χώρας ”, iΔιάβασε Ποσοστό [i]

Για i από 2 μέχρι 50Για j από 50 μέχρι i με_βήμα –1

Αν Ποσοστό[j-1] > Ποσοστό[j] τότεΑντιμετάθεσε Ποσοστό[j-1], Ποσοστό[j]

Τέλος_ανΤέλος_επανάληψης

Αντιμετάθεσε Χώρα[j-1], Χώρα[j]

Τέλος_επανάληψης

Για i από 1 μέχρι 10 με_βήμα 1Εμφάνισε Χώρα[i]

Τέλος_επανάληψης

Εμφάνισε “Οι χώρες με τα χαμηλότερα ποσοστά δασών είναι”

3.36

Page 48: Μέθοδος ευθείας ανταλλαγής στοιχείων (φυσαλίδα)

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝΚεφάλαιο 3ο

Ένας μαθητής έχει μια συλλογή από CD και για κάθε CD έχει καταγράψει στον Η.Υ. τον τίτλο και την χρονιά έκδοσης του. Να ταξινομηθούν τα CD με βάση τη χρονιά έκδοσης τους και να υπολογιστεί ο αριθμός των CD που έχει ο μαθητής με χρονολογία έκδοσης πριν από το 1995. Επίσης να υπάρχει δυνατότητα να βρίσκεις εάν ένα CD με συγκεκριμένο τίτλο υπάρχει στη συλλογή του ή όχι, δίνοντας τον τίτλο του. Χρησιμοποιούμε 2 πίνακες Ν θέσεων για να αποθηκεύσουμε :1. Τους τίτλους των CD και2. Τις χρονιές έκδοσης των CD.Στη συνέχεια θα ταξινομηθούν τα CD με βάση τη χρονιά έκδοσης τους καιθα γίνει και αντιμετάθεση του πίνακα με τους τίτλους των CD.Ο υπολογισμός του πλήθους των CD με χρονιά έκδοσης πριν το 1995 θα γίνει με το γνωστότρόπο με χρήση της μεταβλητής πλήθος. Τέλος θα διαβάζεται ένας τίτλος και θα γίνεταιέλεγχος αν υπάρχει στη συλλογή του μαθητή κάνοντας χρήση της σειριακής μεθόδουαναζήτησης πρώτης εμφάνισης.

Ο αλγόριθμοςείναι οακόλουθος:

3.37

Page 49: Μέθοδος ευθείας ανταλλαγής στοιχείων (φυσαλίδα)

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝΚεφάλαιο 3ο

Αλγόριθμος Δισκοθήκη

Για i από 1 μέχρι ΝΕμφάνισε “Δώσε τον τίτλο του CD ”, iΔιάβασε

Εμφάνισε “Δώσε τον πλήθος των CD ”Διάβασε Ν

Τίτλος[ i ]Εμφάνισε “Δώσε τη χρονιά έκδοσης του CD ”, iΔιάβασε Χρονιά[ i ]

Τέλος_επανάληψηςΓια i από 2 μέχρι ΝΓια j από Ν μέχρι i με_βήμα –1

Αν Χρονιά[j-1] > Χρονιά[j] τότεΑντιμετάθεσε Χρονιά[j-1], Χρονιά[j]

Τέλος_ανΤέλος_επανάληψης

Αντιμετάθεσε Τίτλος[j-1], Τίτλος[j]

Τέλος_επανάληψηςΕμφάνισε “Τα CD με βάση τη χρονολογία έκδοσης τους είναι ”

Για i από 1 μέχρι Ν με_βήμα 1Εμφάνισε Τίτλος [i], Χρονιά[i]

Τέλος_επανάληψης

πλήθος ← 0

Για i από 1 μέχρι Ν με_βήμα 1Αν Χρονιά[i ] < 1995 τότεπλήθος ← πλήθος+1

Τέλος_ανΤέλος_επανάληψης

Τέλος Δισκοθήκη

Εμφάνισε “Τα CD που εκδοθήκαν πριν ”

Εμφάνισε “το 1995 είναι ”,πλήθος

Εμφάνισε “Δώσε τίτλο CD ”Διάβασε Τίτλος_CD

βρέθηκε ←Ψευδήςi ← 0

Όσο i ≤ Ν και βρέθηκε=Ψευδής επανέλαβεΑν Τίτλος[i] = τίτλος_CD τότε

Εμφάνισε “Το CD υπάρχει στη συλλογή.”Εμφάνισε “Η χρονιά έκδοσης ”,Χρονιά[i]

βρέθηκε ← ΑληθήςΤέλος_αν

i ← i+1Τέλος_επανάληψηςΑν βρέθηκε = Ψευδής τότεΕμφάνισε “Το CD δεν υπάρχει στη συλλογή ”

Τέλος_αν

Page 50: Μέθοδος ευθείας ανταλλαγής στοιχείων (φυσαλίδα)

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝΚεφάλαιο 3ο

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

Χρησιμοποιούμε 2 πίνακες για να αποθηκεύσουμε :1. Σε ένα πίνακα 15 θέσεων τα επώνυμα των αθλητών,2. Σε ένα πίνακα 15x5 θα αποθηκεύω σε κάθε γραμμή του, για κάθε αθλητή τα

αποτελέσματα των 5 προσπαθειών του.

ΠαπαδάκηςΓεωργίουΦαράκος

……

Πίνακας Ονομάτων

ΟικονόμουΒασιλείου

3946555442

Πίνακας Προσπαθειών

41495152432153515846……………39465554423946555442

3.38

Page 51: Μέθοδος ευθείας ανταλλαγής στοιχείων (φυσαλίδα)

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝΚεφάλαιο 3ο

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

Χρησιμοποιούμε 2 πίνακες για να αποθηκεύσουμε :1. Σε ένα πίνακα 15 θέσεων τα επώνυμα των αθλητών,2. Σε ένα πίνακα 15x5 θα αποθηκεύω σε κάθε γραμμή του, για κάθε αθλητή τα

αποτελέσματα των 5 προσπαθειών του.

ΠαπαδάκηςΓεωργίουΦαράκος

……

Πίνακας Ονομάτων

ΟικονόμουΒασιλείου

3946555442

Πίνακας Προσπαθειών

41495152432153515846……………49565554403746515742

Στη συνέχεια με μια διπλή επανάληψη θα υπολογίζουμε το μέγιστο για κάθε γραμμή τουπίνακα Προσπαθειών .

Πίνακας Καλύτερης Προσπάθειας ανά Αθλητή

555258….5657

Άρα ο τρίτος πίνακας περιέχει τη μεγαλύτερη τιμή κάθε γραμμής του 2ου πίνακα.

3.38

Page 52: Μέθοδος ευθείας ανταλλαγής στοιχείων (φυσαλίδα)

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝΚεφάλαιο 3ο

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

Χρησιμοποιούμε 2 πίνακες για να αποθηκεύσουμε :1. Σε ένα πίνακα 15 θέσεων τα επώνυμα των αθλητών,2. Σε ένα πίνακα 15x5 θα αποθηκεύω σε κάθε γραμμή του, για κάθε αθλητή τα

αποτελέσματα των 5 προσπαθειών του.

ΠαπαδάκηςΓεωργίουΦαράκος

……

Πίνακας Ονομάτων

ΟικονόμουΒασιλείου

3946555442

Πίνακας Προσπαθειών

41495152432153515846……………49565554403746515742

Στη συνέχεια με μια διπλή επανάληψη θα υπολογίζουμε το μέγιστο για κάθε γραμμή τουπίνακα Προσπαθειών .

Πίνακας Καλύτερης Προσπάθειας ανά Αθλητή

555258….5657

Άρα ο τρίτος πίνακας περιέχει τη μεγαλύτερη τιμή κάθε γραμμής του 2ου πίνακα.

max τιμές

Αφού υπολογιστεί ο πίνακας με τις καλύτερες προσπάθειες , μπορούμε να εμφανίσουμε το επώνυμο κάθε αθλητή δίπλα στο αντίστοιχο στοιχείο του πίνακα,

3.38

Page 53: Μέθοδος ευθείας ανταλλαγής στοιχείων (φυσαλίδα)

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝΚεφάλαιο 3ο

Αλγόριθμος Αθλητές

Για i από 1 μέχρι 15Εμφάνισε “Δώσε το επώνυμο του αθλητή”, iΔιάβασε Επώνυμο[ i ]

Τέλος_επανάληψηςΓια i από 1 μέχρι 15

Για j από 1 μέχρι 5Εμφάνισε “Δώσε τη μέτρηση της προσπάθειας”, j “του αθλητή”,i

Τέλος_επανάληψηςΔιάβασε Μέτρηση[ i,j ]

Τέλος_επανάληψηςΓια i από 1 μέχρι 15

max[ i ]← Μέτρηση[i,1]Τέλος_επανάληψης

Τέλος Αθλητές

! Το πρώτο στοιχείο κάθε γραμμής

Για i από 1 μέχρι 15Για j από 1 μέχρι 5

Αν Μέτρηση[i,j] > max[ i ] τότε

Τέλος_ανmax [ i ]← Μέτρηση[i,j]

Τέλος_επανάληψηςΤέλος_επανάληψηςΓια i από 1 μέχρι 15

Εμφάνισε “Η καλύτερη προσπάθεια του”, Επώνυμο[i]

Εμφάνισε “είναι”, max[i]Τέλος_επανάληψης

Για i από 2 μέχρι 15Για j από 15 μέχρι i με βήμα -1

Αν max[ j-1] < max[ j ] τότε ! Φθίνουσα σειρά

Αντιμετάθεσε max[j-1], max[j]Αντιμετάθεσε Επώνυμο[j-1], Επώνυμο[j]

Τέλος_ανΤέλος_επανάληψης

Τέλος_επανάληψης

Για i από 1 μέχρι 3Εμφάνισε Επώνυμο[ i ]

Εμφάνισε “Θέση ”, i Τέλος_επανάληψης

Page 54: Μέθοδος ευθείας ανταλλαγής στοιχείων (φυσαλίδα)

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝΚεφάλαιο 3ο

Δίνεται ο παρακάτω κατάλογος όπου φαίνονται οι τιμές σε Ευρώ , 4 προϊόντων υπολογιστών από 5 καταστήματα.

ETHERNETTFT MonitorUSB

Πληκτρολόγιο

ΚαταστήματαSOFT-IN FRAME-T MicroComp PC View Spyzy Net

102201213

122451611

112951613

242302011

17,5200218

Να γραφεί αλγόριθμος ο οποίος θα διαβάζει τα στοιχεία του καταλόγου, θα τα αποθηκεύει στις κατάλληλες δομές δεδομένων και θα υπολογίζει τη μέση τιμή για κάθε προϊόν. Επίσης θα υπολογίζεται το σύνολο των εσόδων κάθε καταστήματος σε περίπτωση που ένας πελάτης αγοράσει και τα τέσσερα προϊόντα.Χρησιμοποιούμε 3 πίνακες για να αποθηκεύσουμε :1. Σε ένα πίνακα 4 θέσεων τα όνομα κάθε προϊόντος,2. Σε ένα πίνακα 5 θέσεων θα αποθηκεύω τα ονόματα των πελατών.3. Σε ένα πίνακα 4x5 θέσεων θα αποθηκεύω τις τιμές των προϊόντων.Κάθε γραμμή του τρίτου πίνακα θα έχει τις τιμές κάθε προϊόντος.Όταν ένας πελάτης αγοράσει και τα 4 προϊόνταΠρέπει στην ουσία να υπολογίσουμε το άθροισμα κατά στήλη .Και να το εμφανίσουμε με το όνομα του αντίστοιχου καταστήματος.

3.39

Page 55: Μέθοδος ευθείας ανταλλαγής στοιχείων (φυσαλίδα)

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝΚεφάλαιο 3ο

Αλγόριθμος Τιμές_Προϊόντων

Για i από 1 μέχρι 4Εμφάνισε “Δώσε το επώνυμο του προϊόντος ”, iΔιάβασε Προϊόν[ i ]

Τέλος_επανάληψηςΓια i από 1 μέχρι 5

Εμφάνισε “Δώσε το όνομα του καταστήματος”, i

Διάβασε Κατάστημα[ i ]Τέλος_επανάληψης

Τέλος Τιμές_Προϊόντων

Για i από 1 μέχρι 4Για j από 1 μέχρι 5

Εμφάνισε “Δώσε τη τιμή του προϊόντος”Διάβασε Τιμή [i,j]

Τέλος_επανάληψηςΤέλος_επανάληψης

! Διάβασμα στοιχείων

! Υπολογισμός μέσης τιμής για κάθε προϊόν

Άθροισμα[i]←0

Για i από 1 μέχρι 4

Τέλος_επανάληψηςΓια i από 1 μέχρι 4

Για j από 1 μέχρι 5Άθροισμα[i]← Άθροισμα[i] +Τιμή [i ,j ]

Τέλος_επανάληψηςΤέλος_επανάληψης

Για i από 1 μέχρι 4Εμφάνισε “Η μέση τιμή του προϊόντος ”,Προϊόν [i]Εμφάνισε “είναι ”,Άθροισμα [i]/5

Τέλος_επανάληψης! Υπολογισμός εσόδων ανά κατάστημα

Για j από 1 μέχρι 5ΆθροισμαΣ[j]←0

Τέλος_επανάληψης

Για j από 1 μέχρι 5Για i από 1 μέχρι 4

ΆθροισμαΣ[j]← ΆθροισμαΣ[j] +Τιμή [i ,j ]Τέλος_επανάληψης

Τέλος_επανάληψης

Για j από 1 μέχρι 5

Εμφάνισε“Τα έσοδα του καταστήματος ”,Κατάστημα [j]

Εμφάνισε “είναι ”,ΆθροισμαΣ[j]

Τέλος_επανάληψης

Page 56: Μέθοδος ευθείας ανταλλαγής στοιχείων (φυσαλίδα)

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝΚεφάλαιο 3ο

Να γραφεί αλγόριθμος ο οποίος θα διαβάζει έναν πίνακα 50x50.Στη συνέχεια θα ζητά έναν αριθμό από το 1 έως το 50 (αν ο αριθμός δεν είναι μεταξύ του 1 και 50 να ζητείται επαναληπτικά μέχρι να δοθεί αποδεκτό νούμερο) και θα δημιουργεί έναν 2ο πίνακα 49x49 στον οποίο θα έχουν αντιγραφεί τα στοιχεία του πρώτου πίνακα , πλην των στοιχείων που βρίσκονται στη γραμμή και τη στήλη που αντιστοιχεί στον αριθμό εισόδου.

Χρησιμοποιούμε ένα πίνακα για να αποθηκεύσουμε :

Α1,50Α1,49...Α1,2Α1,1

Πίνακας Α 50x50 θέσεων

Α2,50Α2,49…Α2,2Α2,1

Α3,50Α3,49…Α3,2Α3,1

……………

Α49,50Α49,49…Α49,2Α49,1

Α50,50Α50,49…Α50,2Α50,1

ήΑ1,50Α1,49...Α1,2Α1,1

Πίνακας Α 50x50 θέσεων

Α2,50Α2,49…Α2,2Α2,1

Α3,50Α3,49…Α3,2Α3,1

……………

Α49,50Α49,49…Α49,2Α49,1

Α50,50Α50,49…Α50,2Α50,1

Πίνακας Β 49x49 θέσεων Πίνακας Β 49x49 θέσεων

Δηλώνω νούμερο πχ α = 49

3.40

Page 57: Μέθοδος ευθείας ανταλλαγής στοιχείων (φυσαλίδα)

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝΚεφάλαιο 3ο

Να γραφεί αλγόριθμος ο οποίος θα διαβάζει έναν πίνακα 50x50.Στη συνέχεια θα ζητά έναν αριθμό από το 1 έως το 50 (αν ο αριθμός δεν είναι μεταξύ του 1 και 50 να ζητείται επαναληπτικά μέχρι να δοθεί αποδεκτό νούμερο) και θα δημιουργεί έναν 2ο πίνακα 49x49 στον οποίο θα έχουν αντιγραφεί τα στοιχεία του πρώτου πίνακα , πλην των στοιχείων που βρίσκονται στη γραμμή και τη στήλη που αντιστοιχεί στον αριθμό εισόδου.

Χρησιμοποιούμε 1πίνακα για να αποθηκεύσουμε :

Α1,49...Α1,2Α1,1

Πίνακας Α 50x50 θέσεων

Α2,49…Α2,2Α2,1

Α3,49…Α3,2Α3,1

…………

Α49,49…Α49,2Α49,1

ήΑ1,50...Α1,2Α1,1

Πίνακας Α 50x50 θέσεων

Α2,50…Α2,2Α2,1

Α3,50…Α3,2Α3,1

…………

Α50,50…Α50,2Α50,1

Πίνακας Β 49x49 θέσεων Πίνακας Β 49x49 θέσεων

Δηλώνω νούμερο πχ α = 49

3.40

Page 58: Μέθοδος ευθείας ανταλλαγής στοιχείων (φυσαλίδα)

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝΚεφάλαιο 3ο

Να γραφεί αλγόριθμος ο οποίος θα διαβάζει έναν πίνακα 50x50.Στη συνέχεια θα ζητά έναν αριθμό από το 1 έως το 50 (αν ο αριθμός δεν είναι μεταξύ του 1 και 50 να ζητείται επαναληπτικά μέχρι να δοθεί αποδεκτό νούμερο) και θα δημιουργεί έναν 2ο πίνακα 49x49 στον οποίο θα έχουν αντιγραφεί τα στοιχεία του πρώτου πίνακα , πλην των στοιχείων που βρίσκονται στη γραμμή και τη στήλη που αντιστοιχεί στον αριθμό εισόδου.

Χρησιμοποιούμε 1πίνακα για να αποθηκεύσουμε :

Α1,49...Α1,2Α1,1

Πίνακας Α 50x50 θέσεων

Α2,49…Α2,2Α2,1

Α3,49…Α3,2Α3,1

…………

Α49,49…Α49,2Α49,1

ήΑ1,50...Α1,2Α1,1

Πίνακας Α 50x50 θέσεων

Α2,50…Α2,2Α2,1

Α3,50…Α3,2Α3,1

…………

Α50,50…Α50,2Α50,1

Πίνακας Β 49x49 θέσεων Πίνακας Β 49x49 θέσεων

Δηλώνω νούμερο πχ α = 49

3.40

Page 59: Μέθοδος ευθείας ανταλλαγής στοιχείων (φυσαλίδα)

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝΚεφάλαιο 3ο

Να γραφεί αλγόριθμος ο οποίος θα διαβάζει έναν πίνακα 50x50.Στη συνέχεια θα ζητά έναν αριθμό από το 1 έως το 50 (αν ο αριθμός δεν είναι μεταξύ του 1 και 50 να ζητείται επαναληπτικά μέχρι να δοθεί αποδεκτό νούμερο) και θα δημιουργεί έναν 2ο πίνακα 49x49 στον οποίο θα έχουν αντιγραφεί τα στοιχεία του πρώτου πίνακα , πλην των στοιχείων που βρίσκονται στη γραμμή και τη στήλη που αντιστοιχεί στον αριθμό εισόδου.

Χρησιμοποιούμε 1πίνακα για να αποθηκεύσουμε :

Α1,49...Α1,2Α1,1

Πίνακας Α 50x50 θέσεων

Α2,49…Α2,2Α2,1

Α3,49…Α3,2Α3,1

…………

Α49,49…Α49,2Α49,1

ήΑ1,49...Α1,2Α1,1

Πίνακας Α 50x50 θέσεων

Α2,49…Α2,2Α2,1

Α3,49…Α3,2Α3,1

…………

Α49,49…Α49,2Α49,1

Πίνακας Β 49x49 θέσεων Πίνακας Β 49x49 θέσεων

Δηλώνω νούμερο πχ α = 49

3.40

Page 60: Μέθοδος ευθείας ανταλλαγής στοιχείων (φυσαλίδα)

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝΚεφάλαιο 3ο

Στην ουσία χωρίζουμε τον πίνακα Π σε 4 τμήματα:Έστω ότι δηλώνω α=25 Π

25,25

1 241

24

Για i από 1 μέχρι α-1 επανέλαβε

α-1

γραμμές

Για j από 1 μέχρι α-1 επανέλαβε

Στήλες

Β[i,j]←Α[i,j]Τέλος_επανάληψης

Τέλος_επανάληψης

26 501

24

Για i από 1 μέχρι α-1 επανέλαβε

γραμμές

Για j από α+1 μέχρι 50 επανέλαβε

Στήλες

Β[i,j-1]←Α[i,j]

3.40

Παραμένουν όπως είναι Μεταφορά προς τα αριστερά

Page 61: Μέθοδος ευθείας ανταλλαγής στοιχείων (φυσαλίδα)

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝΚεφάλαιο 3ο

Α37,37

Για παράδειγμα στο 2ο τεταρτημόριο

3.40

Page 62: Μέθοδος ευθείας ανταλλαγής στοιχείων (φυσαλίδα)

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝΚεφάλαιο 3ο

Β37,36

Για παράδειγμα στο 2ο τεταρτημόριο

Δηλαδή μειώνεται κατά 1 η στήλη.

3.40

Page 63: Μέθοδος ευθείας ανταλλαγής στοιχείων (φυσαλίδα)

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝΚεφάλαιο 3ο

Στην ουσία χωρίζουμε τον πίνακα σε 4 τμήματα:Έστω ότι δηλώνω α=25 Α

25,25

1 241

24

Για i από 1 μέχρι α-1 επανέλαβε

Για j από 1 μέχρι α-1 επανέλαβε

Β[i,j]←Α[i,j]Τέλος_επανάληψης

Τέλος_επανάληψης

26 501

24

Για i από 1 μέχρι α-1 επανέλαβεΓια j από α+1 μέχρι 50 επανέλαβε

Β[i,j-1]←Α[i,j]Τέλος_επανάληψης

Τέλος_επανάληψης

1 24

26

50

γραμμές

α+1 Για i από α+1 μέχρι 50 επανέλαβε

Στήλες

Για j από 1 μέχρι α-1 επανέλαβε

Β[i-1,j]←Α[i,j]

3.40

Παραμένουν όπως είναι Μεταφορά προς τα αριστερά

Μεταφορά προς τα πάνω

Page 64: Μέθοδος ευθείας ανταλλαγής στοιχείων (φυσαλίδα)

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝΚεφάλαιο 3ο

Α35,15

Για παράδειγμα στο 3ο τεταρτημόριο

3.40

Page 65: Μέθοδος ευθείας ανταλλαγής στοιχείων (φυσαλίδα)

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝΚεφάλαιο 3ο

Β34,15

Για παράδειγμα στο 3ο τεταρτημόριο

Δηλαδή μειώνεται κατά 1 η γραμμή.

3.40

Page 66: Μέθοδος ευθείας ανταλλαγής στοιχείων (φυσαλίδα)

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝΚεφάλαιο 3ο

Στην ουσία χωρίζουμε τον πίνακα σε 4 τμήματα:Έστω ότι δηλώνω α=25 Α

25,25

1 241

24

Για i από 1 μέχρι α-1 επανέλαβε

Για j από 1 μέχρι α-1 επανέλαβε

Β[i,j]←Α[i,j]Τέλος_επανάληψης

Τέλος_επανάληψης

26 501

24

Για i από 1 μέχρι α-1 επανέλαβεΓια j από α+1 μέχρι 50 επανέλαβε

Β[i,j-1]←Α[i,j]Τέλος_επανάληψης

Τέλος_επανάληψης

1 24

26

50

Για i από α+1 μέχρι 50 επανέλαβε

Για j από 1 μέχρι α-1 επανέλαβε

Β[i-1,j]←Α[i,j]Τέλος_επανάληψης

Τέλος_επανάληψης

26 50

26

50

γραμμές

Για i από α+1 μέχρι 50 επανέλαβε

Στήλες

Για j από α+1 μέχρι 50 επανέλαβε

Β[i-1,j-1]←Α[i,j]

3.40

Μεταφορά προς τα πάνωΜεταφορά προς τα πάνω & αριστερά

Παραμένουν όπως είναι Μεταφορά προς τα αριστερά

Page 67: Μέθοδος ευθείας ανταλλαγής στοιχείων (φυσαλίδα)

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝΚεφάλαιο 3ο

Α35,35

Για παράδειγμα στο 4ο τεταρτημόριο

3.40

Page 68: Μέθοδος ευθείας ανταλλαγής στοιχείων (φυσαλίδα)

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝΚεφάλαιο 3ο

Για παράδειγμα στο 4ο τεταρτημόριο

Β34,34

Δηλαδή μειώνεται κατά 1 και η γραμμή και η στήλη.

3.40

Page 69: Μέθοδος ευθείας ανταλλαγής στοιχείων (φυσαλίδα)

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝΚεφάλαιο 3ο

Στην ουσία χωρίζουμε τον πίνακα σε 4 τμήματα:Έστω ότι δηλώνω α=25 Α

25,25

1 241

24

Για i από 1 μέχρι α-1 επανέλαβε

Για j από 1 μέχρι α-1 επανέλαβε

Β[i,j]←Α[i,j]Τέλος_επανάληψης

Τέλος_επανάληψης

26 501

24

Για i από 1 μέχρι α-1 επανέλαβεΓια j από α+1 μέχρι 50 επανέλαβε

Β[i,j-1]←Α[i,j]Τέλος_επανάληψης

Τέλος_επανάληψης

1 24

26

50

Για i από α+1 μέχρι 50 επανέλαβε

Για j από 1 μέχρι α-1 επανέλαβε

Β[i-1,j]←Α[i,j]Τέλος_επανάληψης

Τέλος_επανάληψης

26 50

26

50

Για i από α+1 μέχρι 50 επανέλαβε

Για j από α+1 μέχρι 50 επανέλαβε

Β[i-1,j-1]←Α[i,j]Τέλος_επανάληψης

Τέλος_επανάληψης

Άρα ο αλγόριθμος είναι:

3.40

Μεταφορά προς τα πάνω

Παραμένουν όπως είναι Μεταφορά προς τα αριστερά

Μεταφορά προς τα πάνω & αριστερά

Page 70: Μέθοδος ευθείας ανταλλαγής στοιχείων (φυσαλίδα)

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝΚεφάλαιο 3ο

Αλγόριθμος Διαγραφή_Γραμμής_Στήλης

Για i από 1 μέχρι 50Για j από 1 μέχρι 50Εμφάνισε “Δώσε το στοιχείο”,i, j “του πίνακα Α”

Τέλος_επανάληψηςΔιάβασε Α[ i,j ]

Τέλος_επανάληψηςΑρχή_επανάληψης

Διάβασε αΜέχρις_ότου α>=1 και α=<50

Τέλος Διαγραφή_Γραμμής_Στήλης

!1 ≤α≤50

Για i από 1 μέχρι α-1Για j από 1 μέχρι α-1

Β [ i, j ]← A [i,j]Τέλος_επανάληψης

Τέλος_επανάληψης

! 1ο τεταρτημόριο

Για i από 1 μέχρι α-1Για j από α+1 μέχρι 50

Β [ i, j-1 ]← A [i,j]Τέλος_επανάληψης

Τέλος_επανάληψης

! 2ο τεταρτημόριο

Για i από α+1 μέχρι 50Για j από 1 μέχρι α-1

Β [ i-1, j ]← A [i,j]Τέλος_επανάληψης

Τέλος_επανάληψης

! 3ο τεταρτημόριο

Για i από α+1 μέχρι 50Για j από α+1 μέχρι 50

Β [ i-1, j-1 ]← A [i,j]Τέλος_επανάληψης

Τέλος_επανάληψης

! 4ο τεταρτημόριο

Page 71: Μέθοδος ευθείας ανταλλαγής στοιχείων (φυσαλίδα)

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝΚεφάλαιο 3ο

Να γραφεί αλγόριθμος που θα διαβάζει έναν πίνακα Α 3 γραμμών και 4 στηλών

3.41

Α1,4Α1,3Α1,1

Πίνακας Α 3x4 θέσεων

Α2,4Α2,3Α2,2Α2,1

Α3,4Α3,3Α3,2Α3,1

Α1,2

Page 72: Μέθοδος ευθείας ανταλλαγής στοιχείων (φυσαλίδα)

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝΚεφάλαιο 3ο

Να γραφεί αλγόριθμος που θα διαβάζει έναν πίνακα Α 3 γραμμών και 4 στηλών

Α1,4Α1,3Α1,1

Πίνακας Α 3x4 θέσεων

Α2,4Α2,3Α2,2Α2,1

Α3,4Α3,3Α3,2Α3,1

Και θα το μετατρέπει σε έναν μονοδιάστατο πίνακα 12 στοιχείων.

Α1,2

Πίνακας Β 12 θέσεων

Α1,4Α1,3Α1,2Α1,1 Α2,4Α2,3Α2,2Α2,1 Α3,4Α3,3Α3,2Α3,1

Άρα ο αλγόριθμος είναι:

3.41

Page 73: Μέθοδος ευθείας ανταλλαγής στοιχείων (φυσαλίδα)

Αλγόριθμος Μετατροπή_πίνακα

Για i από 1 μέχρι 3Για j από 1 μέχρι 4Εμφάνισε “Δώσε το στοιχείο”,i, j “του πίνακα Α”

Τέλος_επανάληψηςΔιάβασε Α[ i,j ]

Τέλος_επανάληψης

Τέλος Μετατροπή_πίνακα

Για j από 1 μέχρι 4

Β [ j ]← A [1, j ] ! 1η Γραμμή

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝΚεφάλαιο 3ο

! Όσες στήλες

Α1,4Α1,3Α1,2Α1,1

Πίνακας Α 3x4 θέσεων

Α2,4Α2,3Α2,2Α2,1

Α3,4Α3,3Α3,2Α3,1

Πίνακας Β 12 θέσεων

Α1,4Α1,3Α1,2Α1,1

3.41

j=1 j=2 j=3 j=4

B4B3B2B1

Page 74: Μέθοδος ευθείας ανταλλαγής στοιχείων (φυσαλίδα)

Αλγόριθμος Μετατροπή_πίνακα

Για i από 1 μέχρι 3Για j από 1 μέχρι 4Εμφάνισε “Δώσε το στοιχείο”,i, j “του πίνακα Α”

Τέλος_επανάληψηςΔιάβασε Α[ i,j ]

Τέλος_επανάληψης

Τέλος Μετατροπή_πίνακα

Για j από 1 μέχρι 4

Β [ j ]← A [1, j ] ! 1η Γραμμή

! 2η ΓραμμήΒ [ j +4]← A [2, j ]

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝΚεφάλαιο 3ο

! Όσες στήλες

Α1,4Α1,3Α1,2Α1,1

Πίνακας Α 3x4 θέσεων

Α2,4Α2,3Α2,2Α2,1

Α3,4Α3,3Α3,2Α3,1

Πίνακας Β 12 θέσεων

Α2,4Α2,3Α2,2Α2,1

3.41

j=1 j=2 j=3 j=4

B4B3B2B1 B8B7B6B5

Page 75: Μέθοδος ευθείας ανταλλαγής στοιχείων (φυσαλίδα)

Αλγόριθμος Μετατροπή_πίνακα

Για i από 1 μέχρι 3Για j από 1 μέχρι 4Εμφάνισε “Δώσε το στοιχείο”,i, j “του πίνακα Α”

Τέλος_επανάληψηςΔιάβασε Α[ i,j ]

Τέλος_επανάληψης

Τέλος Μετατροπή_πίνακα

Για j από 1 μέχρι 4

Β [ j ]← A [1, j ] ! 1η Γραμμή

! 2η ΓραμμήΒ [ j +4]← A [2, j ]

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝΚεφάλαιο 3ο

! Όσες στήλες

Α1,4Α1,3Α1,2Α1,1

Πίνακας Α 3x4 θέσεων

Α2,4Α2,3Α2,2Α2,1

Α3,4Α3,3Α3,2Α3,1

Πίνακας Β 12 θέσεων

3.41

j=1 j=2 j=3 j=4

B4B3B2B1 B8B7B6B5

! 3η ΓραμμήΒ [ j +8]← A [3, j ]

Α3,4Α3,3Α3,2Α3,1 B12B11B10B9

Τέλος_επανάληψης

Page 76: Μέθοδος ευθείας ανταλλαγής στοιχείων (φυσαλίδα)

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝΚεφάλαιο 3ο

Επικοινωνία:[email protected]