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

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

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

Αλγόριθµοι Αναζήτησης και Ταξινόµησης

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

Πίνακες. Ι.Ε.Κ ΓΛΥΦΑΔΑΣ Τεχνικός Τεχνολογίας Internet Αλγοριθμική Ι (Ε) Σχολ. Ετος A Εξάμηνο

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

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

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

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

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

Κάθε στοιχείο που γίνεται αντιληπτό με μία από τις πέντε αισθήσεις μας

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

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

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

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

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

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

i 1 Όσο i <> 100 επανάλαβε i i + 2 Γράψε A[i] Τέλος_επανάληψης

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

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ

ΑΠΑΝΤΗΣΕΙΣ. ΘΕΜΑ Α Α1. 1. ΣΩΣΤΟ 2. ΛΑΘΟΣ 3. ΛΑΘΟΣ 4. ΣΩΣΤΟ 5. ΣΩΣΤΟ (2 μονάδες για κάθε ερώτημα)

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

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

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

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

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

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

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

Να γράψετε τα αποτελέσματα αυτού του αλγόριθμου για Χ=13, Χ=9 και Χ=22. Και στις 3 περιπτώσεις το αποτέλεσμα του αλγορίθμου είναι 1

Ενότητα 3: ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ

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

1. Πότε χρησιμοποιούμε την δομή επανάληψης; Ποιες είναι οι διάφορες εντολές (μορφές) της;

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

Γενικές εξετάσεις 2014 Ανάπτυξη εφαρμογών σε προγραμματιστικό περιβάλλον Τεχνολογική Κατεύθυνση

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

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


Δομές Δεδομένων. Τι είναι η δομή δεδομένων; Έστω η ακολουθία αριθμών: 8, 10,17,19,22,5,12 Λογικό Επίπεδο. Φυσικό Επίπεδο RAM. Ταξινομημένος.

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

φροντιστήρια Θέματα Ανάπτυξης Εφαρμογών σε Προγραμματιστικό Περιβάλλον Γ λυκείου Προσανατολισμός Σπουδών Οικονομίας και Πληροφορικής

ΔΙΑΓΩΝΙΣΜΑ: ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ:- Γ ΛΥΚΕΙΟΥ ΤΜΗΜΑΤΑ: ΓΟ4 ΓΟ7 (ΖΩΓΡΑΦΟΥ) ΓΟ5 ΓΟ6 (ΧΟΛΑΡΓΟΣ) HM/NIA: 15/1/2017

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

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

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

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

ΑΡΧΗ 1ης ΣΕΛΙΔΑΣ ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΤΑΞΗ / ΤΜΗΜΑ : Γ ΛΥΚΕΙΟΥ ΔΙΑΓΩΝΙΣΜΑ ΠΕΡΙΟΔΟΥ : ΜΑΡΤΙΟΣ 2018 ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ : 6 (ΕΞΙ)

Δομές Επανάληψης. Όσο μέχρις ότου για. 22/11/08 Ανάπτυξη εφαρμογών 1

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

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

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

Ένα περιοδικό για το ΑΕΠΠ Τεύχος Πανελλαδικών ΙΙ

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

2. Μια (1) μονάδες για την ορθή παρουσίαση της ουράς Μια (1) μονάδα για τις ορθές τιμές των δεικτών ( για κάθε δείκτη).

ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ Γ ΗΜΕΡΗΣΙΩΝ

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

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

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

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

ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ. 1ο ΓΕΛ ΠΕΥΚΗΣ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ B' ΤΕΤΡΑΜΗΝΟΥ ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ

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

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

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

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

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

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

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

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

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

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΕΡΩΤΗΣΕΙΣ ΘΕΩΡΙΑΣ Κεφάλαια 2, 7, 8

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

Ασκήσεις (2) Άσκηση 1

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

2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ

Πληροφορική 2. Αλγόριθμοι

ΕΝΔΕΙΚΤΙΚΕΣ ΑΠΑΝΤΗΣΕΙΣ ΘΕΜΑ Α Α1. 1 ΣΩΣΤΟ 2 ΛΑΘΟΣ 3 ΛΑΘΟΣ 4 ΛΑΘΟΣ 5 ΣΩΣΤΟ

ΑΡΧΗ 1ης ΣΕΛΙΔΑΣ. ii) Πόσες φορές θα εκτελεστεί η εντολή ΔΙΑΒΑΣΕ Α[μ,λ] στον αλγόριθμο της προηγούμενης ερώτησης; α) 35 β) 12 γ) 20

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

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

ΕΝΔΕΙΚΤΙΚΕΣ ΑΠΑΝΤΗΣΕΙΣ ΔΙΑΓΩΝΙΣΜΑΤΟΣ ΑΝΑΠΤΥΞΗΣ ΕΦΑΡΜΟΓΩΝ ΣΤΙΣ 01/03/2015 ΘΕΜΑ Α

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ Κεφάλαιο 7 ο Τι πρέπει να έχουμε υπ όψιν μας για την επιλογή της κατάλληλης γλώσσας προγραμματισμού;

10 Α2. 5 Α3. (ΟΧΙ = 20-4*2^2)) H (X>Ψ ΚΑΙ X > Ψ

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

ΜΑΘΗΜΑ / ΤΑΞΗ : ΑΕΠΠ / ΘΕΡΙΝΑ ΣΕΙΡΑ: 1 η ΗΜΕΡΟΜΗΝΙΑ: 04/03/2012 ΑΠΑΝΤΗΣΕΙΣ ΘΕΜΑ Α Α1. Α2. 2. ΣΩΣΤΟ 2 δ 3. ΣΩΣΤΟ 3 ε 5. ΛΑΘΟΣ 5 α. 1.

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

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

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

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

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

ΠΑΝΕΛΛΑΔΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Γ ΛΥΚΕΙΟΥ Θέματα και Απαντήσεις

Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον Λύσεις Εργασίας 8: Αναζήτηση & Ταξινόµηση (Πίνακες 3)

10 Α2. 5 Α3. (ΟΧΙ = 20-4*2^2)) H (X>Ψ ΚΑΙ X > Ψ

θέμα των Πανελλαδικών Εξετάσεων

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

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

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

Transcript:

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

Για να απαντήσουμε στα προηγούμενα ερωτήματα πρέπει να εντοπίζουμε για κάθε αλγόριθμο: Την χειρότερη περίπτωση εκτέλεσης Το μέγεθος εισόδου του. Να υπολογίζουμε το χρόνο εκτέλεσης.

Έχουμε δύο τρόπους για να συγκρίνουμε και τέλος να αποφασίσουμε για τον αποδοτικότερο αλγόριθμο: Εμπειρικός ή εκ των υστέρων Θεωρητικός ή εκ των προτέρων (υπολ/μός. Πολυπλοκότητας) Τα κριτήρια σύγκρισης για τους παραπάνω τρόπους είναι με βάση: Το χρόνο εκτέλεσης Τη μνήμη που απαιτείται στην εκτέλεση.

Ο χρόνος εκτέλεσης εξαρτάτε: Από τον τύπο του υπολογιστή που εκτελεί το αντίστοιχο πρόγραμμα. Από τη γλώσσα προγραμματισμού. Τη δομή του προγράμματος και τις δομές δεδομένων. Το χρόνο προσπέλασης στον σκλ. Δίσκο και τις ενέργειες εισόδου-εξόδου. Το λειτουργικό σύστημα (ενός χρήστη ή πολλών χρηστών).

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

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

Είναι η περίπτωση όπου με είσοδο συγκεκριμένων τιμών έχουμε το μέγιστο κόστος σε υπολογιστικούς πόρους. Για τον υπολογισμό τους κόστους μετράμε βασικές πράξεις όπως: Ανάθεσης τιμής. Σύγκριση μεταξύ δύο μεταβλητών. Οποιαδήποτε αριθμητική πράξη μεταξύ δύο μεταβλητών. Ποια είναι η χειρότερη περίπτωση εκτέλεσης Αλγόριθμος Παράδειγμα_1 n 10 Αρχή_Επανάληψης Διάβασε m n n 1 Μέχρις_ότου (m=0) ή (n=0) Εκτύπωσε m Τέλος Παράδειγμα_1

Εκφράζεται από τις μεταβλητές που απεικονίζουν τους συνδυασμούς τιμών εισόδου(τα δεδομένα) που κρίνουν την συμπεριφορά εκτέλεσης. Γενικά τα δεδομένα εισόδου συνιστούν το μέγεθος εισόδου ενός αλγόριθμου. Ποιες μεταβλητές εκφράζουν το μέγεθος εισόδου. Αλγόριθμος Παράδειγμα_1 n 10 Αρχή_Επανάληψης Διάβασε m n n 1 Μέχρις_ότου (m=0) ή (n=0) Εκτύπωσε m Τέλος Παράδειγμα_1

Αλγόριθμος Μέγεθος εισόδου Βασική πράξη ΤΑΞΙΝΟΜΗΣΗ ΠΟΛΛΑΠΛΑΣΙΑΣΜΟΣ Πλήθος στοιχείων προς ταξινόμηση Το πλήθος των ψηφίων που θα πολλαπλασιαστούν σύγκριση Αριθμητικές πράξεις ΑΝΑΖΗΤΗΣΗ Πλήθος στοιχείων πίνακα σύγκριση

Αλγόριθμος Παράδειγμα_2 x 123 y 234 Για i από 0 μέχρι 4 Εκτύπωσε i z x * y Τέλος_επανάληψης Εκτύπωσε x Εκτύπωσε y Εκτύπωσε z Τέλος Παράδειγμα_2 ΒΑΣΙΚΕΣ ΠΡΑΞΕΙΣ Αριθμός πράξεων (1πράξη/1 μsec) Ανάθεσης τιμής στα x,y 2 2 2 2 Βρόχος n επαναλήψεων n=5 n=10 n=100 n=1000000 Ανάθεση αρχικής τιμής στο i 1 1 1 1 έλεγχος i 6 11 101 1000001 Αύξηση i 5 10 100 1000000 Εκύπωση i 5 10 100 1000000 z x * y (2x5)10 20 200 2000000 Εκτύπωση x,y,z 3 3 3 3 ΣΥΝΟΛΟ σε μsec 32 57 507 5000007 Περίπου 5sec

Για τον υπολογισμό της αποδοτικότητας με τον θεωρητικό τρόπο χρησιμοποιούμε μία συνάρτηση F(n) με την οποία υπολογίζουμε την χρονική και χωρητική πολυπλοκότητα. Το n είναι η μεταβλητή που εκφράζει το μέγεθος του προβλήματος(το μέγεθος εισόδου του αντίστοιχου αλγόριθμου). πχ. Αν το πρόβλημα είναι η ταξινόμηση το μέγεθος n = πλήθος των στοιχείων που πρόκειται να ταξινομηθούν. Επειδή μας ενδιαφέρει η γενική συμπεριφορά του αλγόριθμου Υπάρχει ένας συμβολισμός τάξης Ο(order) στην οποία ανήκει η F(n) ( F(n) Є O(g(n)) ) Αν η πολυπλοκότητα ενός αλγόριθμου είναι f(n), τότε λέγεται ότι είναι τάξης Ο(g(n)), αν υπάρχουν δύο θετικοί ακέραιοι c, n 0 έτσι ώστε για κάθε n n 0 να ισχύει f (n) c g(n) f (n)=2n 3 +5 n 2 4n+3 Τότε g (n)=n 3 και πολυπλοκότητα τάξης Ο(n 3 ) f (n)=5 2 n +4n 2 4log (n) πολυπλοκότητα τάξης Ο(2 n ) Ποιος είναι ο σημαντικότερος όρος της δεύτερης συνάρτηση f(n) για n=1,2,3,4,5 f (1)=5 2 (1) +4 1 2 4 log (1)=5 2+4 1 4 0 f (2)=5 2 (2) +4 2 2 4 log (2)=5 4 +4 4 4 0,30 f (3)=5 2 (3) +4 3 2 4 log (3)=5 8+4 9 4 0,48 f (4)=5 2 (4 ) +4 4 2 4 log (4)=5 16+4 16 4 0,60 f (5)=5 2 (5) +4 5 2 4 log(5)=5 32+4 25 4 0,67

Ο(1) Σταθερή πολυπλοκότητα: Κάθε εντολή του προγράμματος εκτελείται μία ή λίγες μόνο φορές. O(n) Γραμμική πολυπλοκότητα: Είναι η καλύτερη για αλγόριθμο που πρέπει να εξετάσει ή να δώσει έξοδο n στοιχεία. Ο(log n) Λογαριθμική: Με log θα συμβολίζουμε τον δυαδικό λογάριθμο, με ln τον φυσικό λογάριθμο. Ο(n log(n)) Σ` αυτή ανήκουν μια σπουδαία οικογένεια αλγόριθμων ταξινόμησης. Ο(n 2 ):Τετραγωνική: Κατάλληλη για προβλήματα μικρού μεγέθους. Ο(n 3 ) Κυβική: Κατάλληλη για προβλήματα μικρού μεγέθους. Ο(2 n ) Εκθετική: Χρησιμοποιείται πολύ σπάνια Πολυπλοκότητα Μέγεθος προβλήματος (Mία βασική πράξη / μικροδευτερόλεπτο) n=20 n=40 n=60 O(n) 0,00002 sec 0,00004 sec 0,00006 sec O(n 2 ) 0,0004 sec 0,0016 sec 0,0036 sec O(n 3 ) 0,008 sec 0,064 sec 0,216 sec O(2 n ) 1 sec 12,7 ημέρες 366 αιώνες O(n!) 77146 έτη 3Χ10 32 αιώνες 3Χ10 66 αιώνες

Για τον υπολογισμό της πολυπλοκότητας χρόνου και χώρου στην ταξινόμηση πρέπει να αθροίσουμε τις βασικές πράξεις της σύγκρισης και της αντιμετάθεσης. Αλγόριθμος Φυσσαλίδα Δεδομένα // table, n // Για i από 2 μέχρι n Για j από n μέχρι i με_βήμα -1 Αν table[ j -1] > table[ j ] τότε αντιμετάθεσε table[ j -1 ], table[ j ] Τέλος_αν Τέλος_επανάληψης Τέλος_επανάληψης Αποτέλεσμα // table // Τέλος Φυσσαλίδα Μέγεθος Προβλήματος n=4 j=4 j=3 j=2 table[ j -1] > table[ j ] αντιμετάθεσε ΧΕΙΡΟΤΕΡΗ ΠΕΡΙΠΤΩΣΗ 200 200 200 3 ή n-1 3 ή n-1 i=2 100 100 10 50 10 100 10 50 50 10 10 2 ή n-2 2 ή n-2 200 200 i=3 100 50 50 100 10 1 1 50 200 i=4 100 Με γενίκευση του αθροίσματος των συγκρίσεων έχουμε αριθμητική πρόοδο: n συγκρίσεων=(n 1)+(n 2)+(n 3)+...+2+1=(n 1+1)(n 1) 1 j=2 2 =n(n 1) = 1 2 2 n2 1 2 n f (n)=2 ( n2 2 n 2 )=n2 n, O (n 2 )

Για τον υπολογισμό της πολυπλοκότητας χρόνου στη σειριακή αναζήτηση αρκεί να μετρήσουμε τις συγκρίσεις κλειδιού με τα στοιχεία του πίνακα (table[i] = key). Αλγόριθμος Sequential_search Δεδομένα //n, table, key// done ψευδής position 0 i 1 Όσο (done=ψευδής) και (i n) Επανάλαβε Αν table[i] = key τότε done αληθής position I Τέλος_αν i i +1 Τέλος_επανάληψης Αποτελέσματα //done, position// Τέλος Sequential_search Μέγεθος Προβλήματος n=5 key=100 key=0 key=50 key=10 Key=-20 100 100 100 100 100 0 0 0 0 0 Πλήθος συγκρίσεων Χειρότερη περίπτωση 50 50 50 50 50 10 10 10 10 10-20 -20-20 -20-20 Συγκρίσεις table[i] = key 1 2 3 4 5 Γενίκευση 1 2 n-2 n-1 n Στη χειρότερη περίπτωση θα έχουμε n συγκρίσεις. f (n)=n O(n) Η πολυπλοκότητα με επιτυχή αναζήτηση είναι ο μέσος όρος των συγκρίσεων κάθε κλειδιού(key:100, 0, 50,...). n i=1 f (n)= συγκρίσεων = 1+2+...+(n 1)+n n n f (n) O(n) = n(n+1) 2 n

Στη δυαδική αναζήτηση στη αρχή συγκρίνουμε key=μεσαίο στοιχείο. Αν δεν είναι αυτό που αναζητούμε διαιρούμε το n(πλήθος στοιχείων πίνακα) δια δύο και περιορίζουμε την αναζήτησή μας στο n/2: Επαναλαμβάνουμε τις συγκρίσεις και τις υποδιαιρέσεις στο n: n 2, n 4, n 8... ή n 2, n 1 2, n 2 2,... n 3 2 k Στη χειρότερη περίπτωση αλγόριθμου οι επαναλήψεις συγκρίσεων θα γίνονται μέχρι να γίνει : ή n 2 k 1 2 k n k log(n) Χειρότερη Περίπτωση Μέγεθος Προβλήματος n=5 n n/2 n/4 key=58 0 0 0 Συγκρίσεις 10 10 10 Τμήμα που απορρίπτουμε 20 20 20 24 24 24 50 50 50 55 55 55 56 56 56 f (n)=log(n) Ο(log(n))