ΦΥΛΛΑΔΙΟ ΚΑΤΑΝΟΗΣΗΣ 6 ΕΠΙΔΟΣΗ ΑΛΓΟΡΙΘΜΩΝ 1. Να εξηγηθεί για τον παρακάτω αλγόριθμο ποια είναι η χειρότερη περίπτωση. Αλγόριθμος Παράδειγμα n 10 Αρχή_επανάληψης Διάβασε m n n - 1 Μέχρις_ότου (m=0) ή (n=0) Εκτύπωσε m Τέλος Παράδειγμα 2. Να υπολογιστεί για τον παρακάτω αλγόριθμο η επίδοση του με βάση τον αριθμό των πράξεων που θα εκτελεστούν. Αλγόριθμος Παράδειγμα x 123 y 234 Για i από 0 μέχρι 4 Εκτύπωσε i z x * y Τέλος_επανάληψης Εκτύπωσε x Εκτύπωσε y Εκτύπωσε z Τέλος Παράδειγμα 3. Να υπολογιστεί για τον παρακάτω αλγόριθμο η επίδοση του με βάση τον αριθμό των πράξεων που θα εκτελεστούν. Αλγόριθμος Παράδειγμα a 1 b 2 Για i από 1 μέχρι 100 a i b a * i Τέλος_επανάληψης Εκτύπωσε a Εκτύπωσε b Τέλος Παράδειγμα Ευάγγελος Χρ. Ζιούλας (Καθηγητής Πληροφορικής) 1
4. Δίνεται ο παρακάτω αλγόριθμος ανάγνωσης και άμεσης εμφάνισης των στοιχείων ενός δισδιάστατου τετραγωνικού πίνακα μεγέθους ΝxΝ. Να υπολογισθεί ο χρόνος εκτέλεσης του αλγορίθμου αυτού και να σχολιασθεί η βαρύτητα των πράξεων επανάληψης σε σχέση με την απόφαση για την πολυπλοκότητα των αλγορίθμων. Αλγόριθμος Παράδειγμα4 Δεδομένα // Ν // Για i από 1 μέχρι Ν Για j από 1 μέχρι Ν Διάβασε A[i, j] Εκτύπωσε A[i, j] Τέλος_επανάληψης Τέλος_επανάληψης Τέλος Παράδειγμα4 5. Δίνεται ο μονοδιάστατος πίνακας Α με τα στοιχεία [7, 4, 3, 8] καθώς επίσης και ο παρακάτω αλγόριθμος ταξινόμησης ευθείας ανταλλαγής. Να παρακολουθήσετε την πορεία του αλγορίθμου και να καταγράψετε την επίδοσή του ως προς τον αριθμό των πράξεων που πρέπει να εκτελεσθούν. Αλγόριθμος Παράδειγμα5 Δεδομένα // Α // Για i από 1 μέχρι n-1 Για j από 1 μέχρι n-1 Αν A[j+1] < A[j] τότε Αντιμετάθεσε A[j+1], A[j] Τέλος_αν Τέλος_επανάληψης Τέλος_επανάληψης Αποτελέσματα // Α // Τέλος Παράδειγμα5 6. Για κάθε ένα από τα παρακάτω τμήματα αλγορίθμων, να συζητηθεί η επίδοση τους και να καταγραφεί η αντίστοιχη πολυπλοκότητα. Ο υπολογισμός της πολυπλοκότητας να βασιστεί στη μέτρηση του αριθμού των πράξεων στη χειρότερη περίπτωση. Α) Για i από 1 μέχρι n Α[i] i Τέλος_επανάληψης Β) Για i από 1 μέχρι n με_βήμα 2 a 2*i Τέλος_επανάληψης Γ) Για i από 1 μέχρι n Για j από 1 μέχρι n a 2*i +j Τέλος_επανάληψης Τέλος_επανάληψης Δ) Για i από 1 μέχρι n με_βήμα 2 Για j από 1 μέχρι n a 2*i +j Τέλος_επανάληψης Τέλος_επανάληψης Ευάγγελος Χρ. Ζιούλας (Καθηγητής Πληροφορικής) 2
7. Έστω ότι ένας πίνακας κρατά τα ποσά που έχουν δώσει οι N μαθητές της τάξης σας για την ενίσχυση του παιδικού χωριού SOS της περιοχής σας. Να δώσετε έναν αλγόριθμο για τον υπολογισμό του συνολικού ποσού που θα διατεθεί και να σχολιάσετε την πολυπλοκότητά του. 8. Σε μία αποθήκη ταινιών κινηματογράφου υπάρχει αρχειοθέτηση των ταινιών με βάση τη χρονιά που παρουσιάσθηκε κάθε ταινία. Ένας σύλλογος ενδιαφέρεται να κάνει ένα αφιέρωμα στις ταινίες της δεκαετίας του 1960 που διαθέτει η αποθήκη. Να προτείνετε έναν αλγόριθμο αναζήτησης των ταινιών αυτών και να σχολιάσετε την επίδοση και την πολυπλοκότητά του. 9. Να βρεθεί η πολυπλοκότητα καθενός από τα παρακάτω τμήματα αλγορίθμων: Α) Όσο i<100 επανάλαβε a 2*i Τέλος_επανάληψης Β) Για i από 1 μέχρι n-1 a 2*i Τέλος_επανάληψης Γ) Για i από 1 μέχρι n-1 με_βήμα 3 a 2*i Τέλος_επανάληψης 10. Να υπολογιστεί για τον παρακάτω αλγόριθμο η επίδοση του με βάση τον αριθμό των πράξεων που θα εκτελεστούν. Αλγόριθμος Παράδειγμα x 10 c 20 Για i από 100 μέχρι 10 με_βήμα -10 x i y 2*x + i Τέλος_επανάληψης Εκτύπωσε x Εκτύπωσε y Τέλος Παράδειγμα 11. Παρατηρώντας τον αλγόριθμο της Δυαδικής αναζήτησης για έναν πίνακα 10 θέσεων, να καταγραφεί ο αριθμός των πράξεων που γίνονται σε κάθε βήμα και να εξηγηθεί βάσει αυτών η πολυπλοκότητά του. Ευάγγελος Χρ. Ζιούλας (Καθηγητής Πληροφορικής) 3