Α Ν Α Λ Τ Η Α Λ Γ Ο Ρ Ι Θ Μ Ω Ν Κ Ε Υ Α Λ Α Ι Ο 5. Πως υπολογίζεται ο χρόνος εκτέλεσης ενός αλγορίθμου;

Σχετικά έγγραφα
Κεφάλαιο 5 Ανάλυση Αλγορίθμων

Για τις λύσεις των προβλημάτων υπάρχει τρόπος εκτίμησης της επίδοσης (performance) και της αποδοτικότητας (efficiency). Ερωτήματα για την επίδοση

Αν ένα πρόβλημα λύνεται από δύο ή περισσότερους αλγόριθμους, ποιος θα είναι ο καλύτερος; Με ποια κριτήρια θα τους συγκρίνουμε;

5.1. Προσδοκώμενα αποτελέσματα

Φίλη μαθήτρια, φίλε μαθητή

Κεφάλαιο 5. Ανάλυση αλγορίθμων

8. Η δημιουργία του εκτελέσιμου προγράμματος γίνεται μόνο όταν το πηγαίο πρόγραμμα δεν περιέχει συντακτικά λάθη.

ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ : Γ ΛΥΚΕΙΟΥ ΣΠΟΥΔΕΣ ΟΙΚΟΝΟΜΙΑΣ & ΠΛΗΡΟΦΟΡΙΚΗΣ ΔΙΑΓΩΝΙΣΜΑ ΠΕΡΙΟΔΟΥ : ΜΑΪΟΥ

ΑΕΠΠ Ερωτήσεις θεωρίας

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον. Διάρκεια 3 ώρες. Όνομα... Επώνυμο... Βαθμός...

ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ

ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ : Γ ΛΥΚΕΙΟΥ ΣΠΟΥΔΕΣ ΟΙΚΟΝΟΜΙΑΣ & ΠΛΗΡΟΦΟΡΙΚΗΣ

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. 1 ο ΚΕΦΑΛΑΙΟ

ΠΕΡΙΕΧΟΜΕΝΑ. Επίδοση αλγορίθμων. Πολυπλοκότητα αλγορίθμων Είδη αλγορίθμων

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον

Δομές Δεδομένων (Data Structures)

1. Δεν μπορεί να γίνει κλήση μίας διαδικασίας μέσα από μία συνάρτηση.

ΑΣΥΜΠΤΩΤΙΚΗ ΑΝΑΛΥΣΗ & ΠΡΟΣΘΕΣΗ

1. Η χειρότερη περίπτωση είναι όταν γίνου 10 επαναλήψεις, δηλαδή για n = 0.

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2

Αλγόριθμοι και Δομές Δεδομένων (Ι) (εισαγωγικές έννοιες)

ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ : Γ ΛΥΚΕΙΟΥ ΣΠΟΥΔΕΣ ΟΙΚΟΝΟΜΙΑΣ & ΠΛΗΡΟΦΟΡΙΚΗΣ

ΑΕΠΠ 6o Επαναληπτικό Διαγώνισμα

ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΣΤΗΝ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ

Α1. Στον προγραµµατισµό χρησιµοποιούνται δοµές δεδοµένων. 1. Τι είναι δυναµική δοµή δεδοµένων; Μονάδες 3 2. Τι είναι στατική δοµή δεδοµένων;

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΣΧΟΛΙΚΟΥ ΕΤΟΥΣ

Α1. Χαρακτηρίστε τις παρακάτω προτάσεις ως σωστές ή λανθασμένες.

Τι είναι αλγόριθμος; Υποπρογράμματα (υποαλγόριθμοι) Βασικές αλγοριθμικές δομές

Ασυμπτωτικός Συμβολισμός

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2. Α1. Ο αλγόριθμος είναι απαραίτητος μόνο για την επίλυση προβλημάτων πληροφορικής

ΘΕΜΑ Α. Λύση: 1. Σωστό, 2. Λάθος, 3. Σωστό, 4. Λάθος, 5. Λάθος. Ποια η διαφορά μεταξύ διερμηνευτή και μεταγλωττιστή; Απάντηση:

Επαναληπτικές Διαδικασίες

Ενδεικτικές Ερωτήσεις Θεωρίας

Αλγόριθμοι και Πολυπλοκότητα

Εισαγωγή στους Αλγόριθμους. Παύλος Εφραιμίδης, Λέκτορας

Ψευδοκώδικας. November 7, 2011

ΘΕΜΑΤΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Γ ΛΥΚΕΙΟΥ ΕΠΑΝΑΛΗΠΤΙΚΟ 10/4/2016

Έστω ένας πίνακας με όνομα Α δέκα θέσεων : 1 η 2 η 3 η 4 η 5 η 6 η 7 η 8 η 9 η 10 η


ΠΡΟΤΕΙΝΟΜΕΝΑ ΘΕΜΑΤΑ ΑΝΑΠΤΥΞΗΣ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ

ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: 05/03/2012

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Αρχές Ανάλυσης Αλγορίθµων Κεφάλαιο 2. Ε. Μαρκάκης Επικ. Καθηγητής

Ασυμπτωτικός Συμβολισμός

8. Λεξιλόγιο μιας γλώσσας είναι όλες οι ακολουθίες που δημιουργούνται από τα στοιχεία του αλφαβήτου της γλώσσας, τις λέξεις.

Εισαγωγή στην Ανάλυση Αλγορίθμων (2-3)

ΦΥΛΛΑΔΙΟ ΚΑΤΑΝΟΗΣΗΣ 6 ΕΠΙΔΟΣΗ ΑΛΓΟΡΙΘΜΩΝ. 3. Να υπολογιστεί για τον παρακάτω αλγόριθμο η επίδοση του με βάση τον αριθμό των πράξεων που θα

ΑΕΠΠ 7o Επαναληπτικό Διαγώνισμα

ΤΕΛΙΚΟ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ

Στήλη Β Προτάσεις. 1. Όσο συνθήκη επανάλαβε εντολές Τέλος_επανάληψης 2. Αρχή_επανάληψης εντολές Μέχρις_ότου συνθήκη

Ασυμπτωτικός Συμβολισμός

Προτεινόμενος τρόπος διδασκαλίας του μαθήματος με ενδεικτικό χρονοπρογραμματισμό. Α/Α Ενότητες Περιγραφή Ώρες 1 Εισαγωγικό μάθημα 1

Υπολογιστική Πολυπλοκότητα

ΘΕΜΑ Α. Α2. Να αναφέρετε από τι εξαρτάται η επιλογή του καλύτερου αλγορίθμου ταξινόμησης. Μονάδες 4. Σελίδα 1 από 8

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο Κάθε δομή μπορεί να χρησιμοποιηθεί σε οποιοδήποτε πρόβλημα ή εφαρμογή

Γκύζη 14-Αθήνα Τηλ :

ΘΕΜΑ 1 ο. Στήλη Β Προτάσεις. β. Ο βρόχος επανάληψης τερµατίζεται, όταν η συνθήκη είναι αληθής. όταν η συνθήκη είναι ψευδής.

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ

Στοιχεία Αλγορίθµων και Πολυπλοκότητας

10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος.

1. Δεν μπορεί να γίνει κλήση μίας διαδικασίας μέσα από μία συνάρτηση.

Ασυμπτωτικός Συμβολισμός

ΘΕΜΑ 1ο Α. 1. Ποια είναι τα κυριότερα χρησιμοποιούμενα γεωμετρικά σχήματα σε ένα διάγραμμα ροής και τι ενέργεια ή λειτουργία δηλώνει το καθένα;

ΠΡΟΣ: Τηλέφωνο: Ινστιτούτο Εκπαιδευτικής Πολιτικής ΚΟΙΝ.:

ΑΠΟΛΥΤΗΡΙΕΣ ΕΞΕΤΑΣΕΙΣ Δ ΤΑΞΗΣ ΕΣΠΕΡΙΝΟΥ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ ΠΑΡΑΣΚΕΥΗ 30 MAΪΟΥ ΑΕΠΠ

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον 2o Επαναληπτικό Διαγώνισμα Κεφ: 2 ο 7 ο 8 ο ΗΜΕΡΟΜΗΝΙΑ 21/ 10/ 2017

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΛΓΟΡΙΘΜΟΙ. Πίνακες και βασικές επεξεργασίες αυτών

ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ

ΑΡΧΗ 1ης ΣΕΛΙΔΑΣ ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ : Γ ΛΥΚΕΙΟΥ ΣΠΟΥΔΕΣ ΟΙΚΟΝΟΜΙΑΣ & ΠΛΗΡΟΦΟΡΙΚΗΣ

I. ΑΛΓΟΡΙΘΜΟΣ II. ΠΡΑΞΕΙΣ - ΣΥΝΑΡΤΗΣΕΙΣ III. ΕΠΑΝΑΛΗΨΕΙΣ. 1. Τα πιο συνηθισμένα σενάρια παραβίασης αλγοριθμικών κριτηρίων είναι:

Φάσμα προπαρασκευή για Α.Ε.Ι. & Τ.Ε.Ι.

Γ ΤΑΞΗ ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ÑÏÌÂÏÓ

III. Πως μετατρέπεται το πηγαίο πρόγραμμα σε εκτελέσιμο πρόγραμμα;

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL)

Ημερομηνία: Τρίτη 27 Δεκεμβρίου 2016 Διάρκεια Εξέτασης: 3 ώρες ΕΚΦΩΝΗΣΕΙΣ

ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: 05/03/2012 ΑΠΑΝΤΗΣΕΙΣ. ΘΕΜΑ Α Α1. Α2. 1. ΣΩΣΤΟ 1 στ 2. ΛΑΘΟΣ 2 δ 3. ΣΩΣΤΟ 3 ε 4. ΛΑΘΟΣ 4 β 5. ΣΩΣΤΟ 5 γ

ΑΣΚΗΣΕΙΣ ΘΕΩΡΙΑΣ. ΘΕΜΑ 1 Δίνεται το παρακάτω τμήμα δηλώσεων ενός προγράμματος σε «ΓΛΩΣΣΑ»: ΜΕΤΑΒΛΗΤΕΣ ΠΡΑΓΜΑΤΙΚΕΣ: Π[10] ΛΟΓΙΚΕΣ: ΒΡΕΘΗΚΕ ΑΚΕΡΑΙΕΣ: i

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΟΝΟΜΑΤΕΠΩΝΥΜΟ:

Ο αλγόριθμος πρέπει να τηρεί κάποια κριτήρια

Δομές Ακολουθίας- Επιλογής - Επανάληψης. Δομημένος Προγραμματισμός

ΕΡΩΤΗΣΕΙΣ ΑΞΙΟΛΟΓΗΣΗΣ

2 Ο ΔΙΑΓΩΝΙΣΜΑ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΟΝ Γ ΛΥΚΕΙΟΥ ΖΗΤΗΜΑ 1ο

Τρίτη, 1 Ιουνίου 2004 ΤΕΧΝΟΛΟΓΙΚΗ ΚΑΤΕΥΘΥΝΣΗ Γ ΛΥΚΕΙΟΥ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ

ΑΠΑΝΤΗΣΕΙΣ. Επιμέλεια: Ομάδα Πληροφορικής της Ώθησης

Πρόβλημα 37 / σελίδα 207

Φροντιστήρια Επίγνωση Προτεινόμενα Θέματα Πανελλαδικών 2014

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ

4.4 Μετατροπή από μία μορφή δομής επανάληψης σε μία άλλη.

Επιλογή και επανάληψη. Λογική έκφραση ή συνθήκη

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον

Ορισµός. Εστω συναρτήσεις: f : N R και g : N R. η f(n) είναι fi( g(n) ) αν υπάρχουν σταθερές C 1, C 2 και n 0, τέτοιες ώστε:

Προτεινόμενα Θέματα ΑΕΠΠ

οµές εδοµένων 3 ο Εξάµηνο Τµήµα Πανεπιστήµιο Πληροφορικής Ιωαννίνων ΟΜΕΣ Ε ΟΜΕΝΩΝ

Αναδρομή Ανάλυση Αλγορίθμων

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ

Κεφάλαιο 10 Υποπρογράμματα. Καραμαούνας Πολύκαρπος

ΔΙΑΓΩΝΙΣΜΑ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

ΘΕΜΑ Συμβολική γλώσσα 2. Γλώσσες υψηλού επιπέδου 3. Γλώσσες τέταρτής γενιάς 4. Γλώσσα μηχανής

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΤΕΧΝΟΛΟΓΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ

ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ Γ ΤΑΞΗ

Transcript:

5.1 Επίδοση αλγορίθμων Μέχρι τώρα έχουμε γνωρίσει διάφορους αλγόριθμους (αναζήτησης, ταξινόμησης, κ.α.). Στο σημείο αυτό θα παρουσιάσουμε ένα τρόπο εκτίμησης της επίδοσης (performance) η της αποδοτικότητας (efficiency) των αλγορίθμων. Για να κατανοήσουμε την επίδοση ενός αλγορίθμου χρειάζεται να απαντηθούν πρωταρχικά ερωτήματα που προκύπτουν όπως: Πως υπολογίζεται ο χρόνος εκτέλεσης ενός αλγορίθμου; Πως συγκρίνονται μεταξύ τους οι διάφοροι αλγόριθμοι; Πως ξέρουμε αν ένας αλγόριθμος είναι «βέλτιστος»; Για να απαντήσουμε στα ερωτήματα αυτά πρέπει να καταγραφούν ουσιώδεις πληροφορίες για το πρόβλημα, όπως η αναγνώριση της χειρότερης περίπτωσης του αλγορίθμου και η αποτύπωση του μεγέθους του προβλήματος με βάση το πλήθος των δεδομένων. (μέγεθος εισόδου ενός αλγορίθμου) 5.1.1 Χειρότερη περίπτωση ενός αλγορίθμου Η χειρότερη περίπτωση ενός αλγορίθμου αφορά το μέγιστο κόστος εκτέλεσης του αλγορίθμου, το οποίο μετριέται σε υπολογιστικούς πόρους. Το κόστος αυτό κρίνει την επιλογή σχεδιασμού ενός αλγορίθμου. Για να είναι μετρίσιμη η χειρότερη περίπτωση, μετράμε το πλήθος των βασικών πράξεων που πρέπει να εκτελέσει ο αλγόριθμος στη χειρότερη περίπτωση. Μια βασική πράξη μπορεί να είναι: Ανάθεση τιμής Σύγκριση δύο μεταβλητών Οποιαδήποτε αριθμητική πράξη μεταξύ δύο μεταβλητών. Παράδειγμα: έστω ότι δίνεται ο παρακάτω αλγόριθμος: Αλγόριθμος παράδειγμα N 10 Αρχή_επανάληψης Διάβασε Μ Ν Ν-1 Μέχρις_ότου (Μ=0) Η (Ν=0) Εκτύπωσε Μ Τέλος παράδειγμα Κεφάλαιο 5

Είναι προφανές ότι η χειρότερη περίπτωση για αυτόν τον αλγόριθμο είναι όταν γίνουν δέκα επαναλήψεις. 5.1.2 Μέγεθος εισόδου ενός αλγορίθμου Γενικά τα δεδομένα συνιστούν το μέγεθος εισόδου ενός αλγορίθμου. Για παράδειγμα στον προηγούμενο αλγόριθμο, το μέγεθος του αλγορίθμου μπορεί να εκφραστεί από τη μεταβλητή Ν που εκφράζει το πλήθος των επαναλήψεων του αλγορίθμου. Ο παρακάτω πίνακας περιλαμβάνει παραδείγματα αλγορίθμων και δείχνει το μέγεθος εισόδου καθώς και τη βασική πράξη που εκτελεί κάθε αλγόριθμος. Μέγεθος εισόδου και βασική πράξη αλγορίθμων Αλγόριθμος Μέγεθος εισόδου αλγορίθμου (n) Βασική πράξη ΤΑΞΙΝΟΜΗΣΗ Το πλήθος των αντικειμένων που θα ταξινομηθούν σύγκριση ΠΟΛΛΑΠΛΑΣΙΑΣΜΟΣ Το πλήθος των ψηφίων των αριθμών που θα πολλαπλασιαστούν Αριθμητικές πράξεις ΑΝΑΖΗΤΗΣΗ Το πλήθος των στοιχείων του πίνακα σύγκριση 5.1.3 Χρόνος εκτέλεσης προγράμματος ενός αλγορίθμου Έστω ο παρακάτω αλγόριθμος : Αλγόριθμος παράδειγμα1 χ 123 ψ 234 Για i από 0 μέχρι 4 Εκτύπωσε i z χ + ψ Τέλος_επανάληψης Εκτύπωσε χ Εκτύπωσε ψ Εκτύπωσε z Τέλος παράδειγμα1 Η επίδοσή του θα υπολογιστεί με βάση τον αριθμό των πράξεων που θα εκτελεστούν. Ο βρόχος εκτελείται 5 φορές, έτσι έχουμε την παρακάτω ανάλυση: Εντολή αλγορίθμου Αριθμός πράξεων Ανάθεση τιμών στα χ και ψ 2 Βρόχος επανάληψης Αρχική τιμή i 1 Έλεγχος i 6 Αύξηση του i 5 Εκτύπωση του i 5 Υπολογισμός z (2 X 5) 10 Εκτύπωση του χ,ψ,z 3

ΣΥΝΟΛΟ 32 Εάν ο βρόχος εκτελεστεί n φορές, ο χρόνος εκτέλεσης θα εξαρτάται από το μέγεθος του n. Ο παρακάτω πίνακας παρουσιάζει τους χρόνους εκτέλεσης του αλγορίθμου αυτού για διαφορετικά μεγέθη του n. Χρόνοι εκτέλεσης αλγορίθμου ανάλογα με το μέγεθος Μέγεθος n Χρόνος εκτέλεσης 5 32 Μίκρο-δευτερόλεπτα 10 57 Μίκρο-δευτερόλεπτα 100 507 Μίκρο-δευτερόλεπτα 1000000 5 δευτερόλεπτα (περίπου) 5.1.4 Αποδοτικότητα αλγορίθμου Αν η επίλυση ενός προβλήματος γίνει με δύο η περισσότερους αλγορίθμους, τότε χρειάζεται να επιλέξουμε τον αποδοτικότερο. Δηλαδή αν ο αλγόριθμος Β έχει το ίδιο αποτέλεσμα σε λιγότερο χρόνο τότε είναι αποδοτικότερος του Α. Επίσης αν ο Β χρησιμοποιεί λιγότερη μνήμη από τον Α, πάλι είναι αποδοτικότερος. Βέβαια όταν συγκρίνονται δύο αλγόριθμοι, πρέπει να συγκρίνονται με ίδια δεδομένα και κάτω από ίδιες συνθήκες. Γενικά ο χρόνος εκτέλεσης ενός αλγορίθμου εξαρτάται από τους παρακάτω παράγοντες Τύπος του Η/Υ που θα εκτελεστεί το πρόγραμμα Γλώσσα προγραμματισμού που θα χρησιμοποιηθεί Δομή προγράμματος και δομές δεδομένων που χρησιμοποιούνται Χρόνος πρόσβασης του δίσκου και στις ενέργειες εισόδου-εξόδου Είδος συστήματος, ενός χρήστη η πολλών χρηστών Επομένως για να έχει νόημα η σύγκριση μεταξύ δύο προγραμμάτων αλγορίθμων θα πρέπει να ικανοποιούνται οι παρακάτω προϋποθέσεις και τα δύο προγράμματα να έχουν συνταχθεί στην ίδια γλώσσα προγραμματισμού να έχει χρησιμοποιηθεί ο ίδιος μεταφραστής της γλώσσας προγραμματισμού να χρησιμοποιείται η ίδια υπολογιστική πλατφόρμα, οι δύο αλγόριθμοι να έχουν ακριβώς τα ίδια δεδομένα σαν είσοδο

5.3 Πολυπλοκότητα αλγορίθμων Ο απλούστερος τρόπος μέτρησης της επίδοσης ενός αλγορίθμου είναι ο εμπειρικός η αλλιώς ο λεγόμενος εκ των υστέρων. Ο αλγόριθμος υλοποιείται και εφαρμόζεται σε ένα σύνολο δεδομένων, για να υπολογισθεί ο χρόνος επεξεργασίας και η χωρητικότητα μνήμης. Ο τρόπος αυτός παρουσιάζει δύο κύρια μειονεκτήματα: είναι δύσκολο να προβλεφθεί η συμπεριφορά του αλγορίθμου για κάποιο άλλο σύνολο δεδομένων ο χρόνος επεξεργασίας εξαρτάται από το υλικό, τη γλώσσα προγραμματισμού, το μεταφραστικό πρόγραμμα και τέλος από την ικανότητα του προγραμματιστή. Έτσι μπορεί να γίνουν λανθασμένες εκτιμήσεις για την επίδοση ενός αλγορίθμου. Ένας δεύτερος τρόπος μέτρησης της επίδοσης ενός αλγορίθμου είναι ο θεωρητικός η αλλιώς ο λεγόμενος εκ των προτέρων. Για το σκοπό αυτό θεωρούμε μια μεταβλητή n, που εκφράζει το μέγεθος (size) του προβλήματος, ώστε η μέτρηση της επίδοσης του αλγορίθμου να ισχύει για οποιοδήποτε σύνολο δεδομένων και ανεξάρτητα από παράγοντες όπως αυτοί που αναφέρθηκαν προηγουμένως. Η σημασία της μεταβλητής αυτής εξαρτάται από το πρόβλημα που πρόκειται να επιλυθεί. Για παράδειγμα αν το πρόβλημα είναι η ταξινόμηση k στοιχείων τότε n = k. Ο χρόνος επεξεργασίας και ο απαιτούμενος χώρος μνήμης εκτιμώνται με τη βοήθεια μιας συνάρτησης f(n) που εκφράζει την χρονική πολυπλοκότητα η την πολυπλοκότητα χώρου. Σε πολλές περιπτώσεις δεν μας ενδιαφέρουν οι ακριβείς τιμές αλλά μόνο η γενική συμπεριφορά των αλγορίθμων, δηλαδή η τάξη του αλγορίθμου, ο λεγόμενος συμβολισμός Ο (Order). Ορισμός: Αν η πολυπλοκότητα ενός αλγορίθμου είναι f(n), τότε λέμε ότι είναι της τάξης O(g(n)), αν υπάρχουν δύο θετικοί ακέραιοι c και n 0, έτσι ώστε για κάθε n>=n 0 να ισχύει: f(n) <= c g(n) Λέγεται ότι ο συμβολισμός Ο δίνει ένα άνω φράγμα για την πολυπλοκότητα ενός αλγορίθμου, δηλαδή δίνει ένα μέτρο που ποτέ δεν πρόκειται να ξεπεράσει ένας αλγόριθμος προς τα επάνω. Οι περισσότεροι αλγόριθμοι έχουν χρονική πολυπλοκότητα που ανήκει σε μια από τις παρακάτω κατηγορίες. Ο(1) κάθε εντολή του προγράμματος εκτελείται μία φορά η το πολύ μερικές μόνο φορές. Ο αλγόριθμος είναι σταθερής πολυπλοκότητας. Ο(logn). Ο αλγόριθμος είναι λογαριθμικής πολυπλοκότητας. O(n). Γραμμική πολυπλοκότητα, αυτή είναι η καλύτερη επίδοση για έναν αλγόριθμο που πρέπει να εξετάσει η να δώσει σαν έξοδο n στοιχεία. O(n logn). Διαβάζεται όπως ακριβώς γράφεται (n logn), στην κατηγορία αυτή ανήκουν διάφοροι αλγόριθμοι ταξινόμησης. O(n 2 ). Τετραγωνική πολυπλοκότητα. Πρέπει να χρησιμοποιείται μόνο για προβλήματα μικρού μεγέθους. O(n 3 ). Κυβική πολυπλοκότητα. Και αυτοί οι αλγόριθμοι πρέπει να χρησιμοποιείται μόνο για προβλήματα μικρού μεγέθους. O(2 n ). Εκθετική πολυπλοκότητα. Χρησιμοποιούνται σπάνια στην πράξη.

Στον παρακάτω πίνακα υπολογίζεται ο χρόνος ο χρόνος εκτέλεσης που απαιτείται για διαφορετικές πολυπλοκότητες σε συνάρτηση με το μέγεθος του προβλήματος. Υποτίθεται ότι κάθε στοιχειώδης πράξη απαιτεί ένα μικροδευτερόλεπτο. Έτσι αν για έναν αλγόριθμο της τάξης Ο(n3) διπλασιαστεί το μέγεθος του προβλήματος τότε απαιτείται οκταπλάσιος (2 3 ) χρόνος εκτέλεσης του αλγορίθμου. Χρόνοι εκτέλεσης αλγορίθμων ανάλογα με την πολυπλοκότητα και το μέγεθος Πολυπλοκότητα Μέγεθος προβλήματος αλγορίθμου n=20 n=40 n=60 O(n) 0.00002 δεύτερα 0.00004 δεύτερα 0.00006 δεύτερα O(n 2 ) 0.0004 δεύτερα 0.0016 δεύτερα 0.0036 δεύτερα O(n 3 ) 0.008 δεύτερα 0.064 δεύτερα 216 δεύτερα O(2 n ) 1.0 δεύτερα 2.7 ημέρες 366 αιώνες O(n!) 771 αιώνες 3 10 32 αιώνες 3 10 66 αιώνες Διαπιστώνουμε ότι οι αλγόριθμοι εκθετικής πολυπλοκότητας δεν έχουν πρακτική χρησιμότητα ακόμη και για μικρό αριθμό δεδομένων.

Α Π Α Ν Σ Η Μ Ε Ν Ε Ε Ρ Ω Σ Η Ε Ι 1. Ποια είναι τα πρωταρχικά ερωτήματα που τίθενται για την κατανόηση της επίδοσης ενός αλγορίθμου; Πως υπολογίζεται ο χρόνος εκτέλεσης ενός αλγορίθμου; Πως συγκρίνονται μεταξύ τους οι διάφοροι αλγόριθμοι; Πως ξέρουμε αν ένας αλγόριθμος είναι «βέλτιστος»; 2. Τι είναι και πως μπορεί να εκφραστεί η χειρότερη περίπτωση ενός αλγορίθμου; Η χειρότερη περίπτωση ενός αλγορίθμου αφορά το μέγιστο κόστος εκτέλεσης του αλγορίθμου. Για να εκφραστεί αυτή η χειρότερη περίπτωση συνήθως χρησιμοποιούμε το πλήθος των βασικών πράξεων που θα εκτελέσει ο αλγόριθμος στη χειρότερη περίπτωση. 3. Να περιγραφεί το μέγεθος της εισόδου ενός αλγορίθμου και να δοθεί ένα παράδειγμα αναγνώρισης και καταγραφής αυτού του μεγέθους. Το μέγεθος εισόδου ενός αλγορίθμου είναι το μέγεθος των δεδομένων εισόδου του αλγορίθμου. Παράδειγμα, το μέγεθος εισόδου ενός αλγορίθμου υπολογισμού του μέσου όρου κάποιων αριθμών είναι το πλήθος των αριθμών. 4. Από ποιους κύριους παράγοντες εξαρτάται ο χρόνος εκτέλεσης ενός αλγορίθμου; Ο χρόνος εκτέλεσης ενός αλγορίθμου εξαρτάται από τους παρακάτω παράγοντες: Τύπος του Η/Υ που θα εκτελεστεί το πρόγραμμα Γλώσσα προγραμματισμού που θα χρησιμοποιηθεί Δομή προγράμματος και δομές δεδομένων που χρησιμοποιούνται Χρόνος πρόσβασης του δίσκου και στις ενέργειες εισόδου-εξόδου Είδος συστήματος, ενός χρήστη η πολλών χρηστών 5. Ποιες είναι οι απαραίτητες προϋποθέσεις για να είναι δυνατή η σύγκριση μεταξύ δύο προγραμμάτων αλγορίθμων; Για να έχει νόημα η σύγκριση μεταξύ δύο προγραμμάτων αλγορίθμων θα πρέπει: και τα δύο προγράμματα να έχουν συνταχθεί στην ίδια γλώσσα προγραμματισμού να έχει χρησιμοποιηθεί ο ίδιος μεταφραστής της γλώσσας προγραμματισμού να χρησιμοποιείται η ίδια υπολογιστική πλατφόρμα, οι δύο αλγόριθμοι να έχουν ακριβώς τα ίδια δεδομένα σαν είσοδο

6. Να ορισθεί η αποδοτικότητα αλγορίθμων. Αποδοτικότητα αλγορίθμου είναι μια έννοια που εκφράζει τη χρήση των υπολογιστικών πόρων (χώρος και χρόνος) από τον αλγόριθμο και αποτελεί το γενικότερο κριτήριο σύγκρισης αλγορίθμων. 7. Να δοθεί ο ορισμός της πολυπλοκότητας αλγορίθμου. Η πολυπλοκότητα αλγορίθμου είναι ένας τύπος με τη βοήθεια του οποίου υπολογίζεται προσεγγιστικά το πλήθος των εντολών που θα εκτελεστούν σε συνάρτηση με το μέγεθος του προβλήματος. 8. Ποια είναι η πολυπλοκότητα των λειτουργιών σε στοίβες και ουρές; Ώθηση Απώθηση Ο(1) Εισαγωγή Εξαγωγή Ο(1) 9. Ποια είναι η πολυπλοκότητα της σειριακής αναζήτησης; Σειριακή αναζήτηση Ο(n)