Κατ οίκον Εργασία 1 Σκελετοί Λύσεων

Σχετικά έγγραφα
Κατ οίκον Εργασία 1 Σκελετοί Λύσεων

Κατ οίκον Εργασία 1 Σκελετοί Λύσεων

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΘΕΩΡΗΤΙΚΗ ΑΣΚΗΣΗ 1 ΛΥΣΕΙΣ Ανάλυση Πολυπλοκότητας

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΘΕΩΡΗΤΙΚΗ ΑΣΚΗΣΗ 1 ΛΥΣΕΙΣ Ανάλυση Πολυπλοκότητας

Διάλεξη 04: Παραδείγματα Ανάλυσης

Διάλεξη 04: Παραδείγματα Ανάλυσης Πολυπλοκότητας/Ανάλυση Αναδρομικών Αλγόριθμων

ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 4. Παραδείγματα Ανάλυσης Πολυπλοκότητας Ανάλυση Αναδρομικών Αλγόριθμων

Στη C++ υπάρχουν τρεις τύποι βρόχων: (a) while, (b) do while, και (c) for. Ακολουθεί η σύνταξη για κάθε μια:

Διδάσκων: Παναγιώτης Ανδρέου ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι

Διδάσκων: Παναγιώτης Ανδρέου

Διδάσκων: Παναγιώτης Ανδρέου

d k 10 k + d k 1 10 k d d = k i=0 d i 10 i.

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ.

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

Ενδεικτικές Λύσεις 1ου Σετ Ασκήσεων

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

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

Διάλεξη 17: Επανάληψη για την ενδιάμεση εξέταση. Διδάσκων: Παναγιώτης Ανδρέου. ΕΠΛ035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. Και Μηχ. Υπολ.

Μορφές αποδείξεων. Μαθηματικά Πληροφορικής 2ο Μάθημα. Μορφές αποδείξεων (συνέχεια) Εξαντλητική μέθοδος

Μορφές αποδείξεων Υπάρχουν πολλά είδη αποδείξεων. Εδώ θα δούμε τα πιο κοινά: Εξαντλητική μέθοδος ή μέθοδος επισκόπησης. Οταν το πρόβλημα έχει πεπερασμ

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

Μορφές αποδείξεων Υπάρχουν πολλά είδη αποδείξεων. Εδώ θα δούμε τα πιο κοινά: Εξαντλητική μέθοδος ή μέθοδος επισκόπησης. Οταν το πρόβλημα έχει πεπερασμ

Διάλεξη 09: Αλγόριθμοι Ταξινόμησης I

1 Arq thc Majhmatik c Epagwg c

Δυναμικός προγραμματισμός για δέντρα

12. ΑΝΙΣΩΣΕΙΣ Α ΒΑΘΜΟΥ. είναι δύο παραστάσεις μιας μεταβλητής x πού παίρνει τιμές στο

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

Σειρά Προβλημάτων 1 Λύσεις

Διάλεξη 09: Αλγόριθμοι Ταξινόμησης I

Ανάλυση της Ορθότητας Προγραμμάτων (HR Κεφάλαιο 4)

Κατ οίκον Εργασία 1 Σκελετοί Λύσεων

Ανάλυση της Ορθότητας Προγραμμάτων

με Τέλος πάντων, έστω ότι ξεκινάει ένα άλλο υποθετικό σενάριο που απλά δεν διευκρινίζεται. Για το i) θα έχουμε , 2

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

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Παναγιώτης Ανδρέου

2018 Φάση 2 ιαγωνίσµατα Επανάληψης ΑΛΓΕΒΡΑ. Α' Γενικού Λυκείου. Σάββατο 21 Απριλίου 2018 ιάρκεια Εξέτασης:3 ώρες ΘΕΜΑΤΑ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

F 5 = (F n, F n+1 ) = 1.

Επαγωγή και αναδρομή για άκυκλα συνεκτικά γραφήματα

Θεωρία Υπολογισμού και Πολυπλοκότητα

ΕΠΛ 232: Αλγόριθµοι και Πολυπλοκότητα. Κατ οίκον Εργασία 1 Σκελετοί Λύσεων

β) 3 n < n!, n > 6 i i! = (n + 1)! 1, n 1 i=1

ΚΥΠΡΙΑΚΗ ΜΑΘΗΜΑΤΙΚΗ ΕΤΑΙΡΕΙΑ Γ' ΔΙΑΓΩΝΙΣΜΟΣ ΕΠΙΛΟΓΗΣ ΛΥΚΕΙΟΥ. «Ευκλείδης» Ημερομηνία: 29/04/2017 Ώρα εξέτασης: 10:00-14:30

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

Στην ενότητα αυτή θα µελετηθούν τα εξής θέµατα:

- ΟΡΙΟ - ΣΥΝΕΧΕΙΑ ΣΥΝΑΡΤΗΣΗΣ ΕΝΟΤΗΤΑ 6: ΜΗ ΠΕΠΕΡΑΣΜΕΝΟ ΟΡΙΟ ΣΤΟ

ΔΙΑΓΩΝΙΣΜΑ ΣΤΑ ΜΑΘΗΜΑΤΙΚΑ 89. Ύλη: Πιθανότητες Το σύνολο R-Εξισώσεις Σ Λ 2. Για τα ενδεχόμενα Α και Β ισχύει η ισότητα: A ( ) ( ') ( ' )

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

Βρόχοι. Εντολή επανάληψης. Το άθροισμα των αριθμών 1 5 υπολογίζεται με την εντολή. Πρόβλημα. Πώς θα υπολογίσουμε το άθροισμα των ακέραιων ;

Αριθμητική Ανάλυση και Εφαρμογές

ΛΥΜΕΝΕΣ ΑΣΚΗΣΕΙΣ ΣΤΙΣ ΣΥΝΑΡΤΗΣΕΙΣ

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

APEIROSTIKOS LOGISMOS I

Στην ενότητα αυτή θα µελετηθούν τα εξής θέµατα:

Ανάλυση της Ορθότητας Προγραμμάτων

7. Αν υψώσουμε και τα δύο μέλη μιας εξίσωσης στον κύβο (και γενικά σε οποιαδήποτε περιττή δύναμη), τότε προκύπτει

Κεφάλαιο 5ο: Εντολές Επανάληψης

n 5 = 7 ε (π.χ. ορίζοντας n0 = 1+ ε συνεπώς (σύμϕωνα με τις παραπάνω ισοδυναμίες) an 5 < ε. Επομένως a n β n 23 + β n+1

Ασκήσεις3 Διαγωνισιμότητα Βασικά σημεία Διαγωνίσιμοι πίνακες: o Ορισμός και παραδείγματα.

Αριθμητικές Μέθοδοι σε Προγραμματιστικό Περιβάλλον

ΘΕΜΑΤΑ ΕΞΕΤΑΣΗΣ ΚΑΙ ΑΠΑΝΤΗΣΕΙΣ

Επαναληπτικές μέθοδοι

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

(a 1, b 1 ) (a 2, b 2 ) = (a 1 a 2, b 1 b 2 ).

Ασκήσεις3 Διαγωνίσιμες Γραμμικές Απεικονίσεις

Ανάλυση αλγορίθμων. Χρόνος εκτέλεσης: Αναμενόμενη περίπτωση. - απαιτεί γνώση της κατανομής εισόδου

Μορφές αποδείξεων. Μαθηματικά Πληροφορικής 2ο Μάθημα. Μορφές αποδείξεων (συνέχεια)

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ Λυσεις Ασκησεων - Φυλλαδιο 1

Αναζήτηση. 1. Σειριακή αναζήτηση 2. Δυαδική Αναζήτηση. Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη

Λύσεις Σειράς Ασκήσεων 5

A N A B P Y T A ΑΣΚΗΣΕΙΣ ΠΟΛΥΩΝΥΜΩΝ. 1 (α + β + γ) [(α-β) 2 +(α-γ) 2 +(β-γ) 2 ] και τις υποθέσεις

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

ΑΡΙΘΜΗΤΙΚΗ ΠΡΟΟΔΟΣ. Σύμφωνα με τα παραπάνω, για μια αριθμητική πρόοδο που έχει πρώτο όρο τον ...

5. Να λυθεί η εξίσωση. 6. Δίνεται η συνάρτηση. 2f x ΛΥΣΗ: Τα x για τα οποία 2 x 0 x 0 x, δεν είναι λύσεις της εξίσωσης γιατί για

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

Αριθμητικές Μέθοδοι σε Προγραμματιστικό Περιβάλλον

0x2 = 2. = = δηλαδή η f δεν. = 2. Άρα η συνάρτηση f δεν είναι συνεχής στο [0,3]. Συνεπώς δεν. x 2. lim f (x) = lim (2x 1) = 3 και x 2 x 2

Σειρά Προβλημάτων 1 Λύσεις

6 η Δραστηριότητα στο MicroWorlds Pro (1)

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

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

Φροντιστήριο #4 Λυμένες Ασκήσεις Μαθηματική Επαγωγή 13/3/2018

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

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

Mαθηματικά Θετικής - Τεχνολογικής Κατεύθυνσης Γ. Λυκείου Ανάλυση Κεφ. 1 ο ΣΥΝΑΡΤΗΣΕΙΣ

ii) Να ποια τιμή του ώστε η εξίσωση (1) έχει μία διπλή πραγματική ρίζα; Έπειτα να βρεθεί η ρίζα αυτή. Ασκήσεις Άλγεβρας

1 η δεκάδα θεµάτων επανάληψης

Α ΛΥΚΕΙΟ ΓΕΡΑΚΑ. ΑΣΚΗΣΕΙΣ ΕΠΑΝΑΛΗΨΗΣ ΣΤΗΝ ΑΛΓΕΒΡΑ Β ΛΥΚΕΙΟΥ Σχολικό Έτος ΜΑΝΩΛΗ ΨΑΡΡΑ. Μανώλης Ψαρράς Σελίδα 1

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 2: Μαθηματικό Υπόβαθρο

Αν α θετικός πραγματικός αριθμός, σε κάθε x αντιστοιχεί η

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά

Αριθμοθεωρητικοί Αλγόριθμοι

n ίδια n διαφορετικά n n 0 n n n 1 n n n n 0 4

2ο ΓΕΛ ΑΓ.ΔΗΜΗΤΡΙΟΥ ΑΕΠΠ ΘΕΟΔΟΣΙΟΥ ΔΙΟΝ ΠΡΟΣΟΧΗ ΣΤΑ ΠΑΡΑΚΑΤΩ

Διάλεξη 5η: Εντολές Επανάληψης

(CLR, κεφάλαιο 32) Στην ενότητα αυτή θα µελετηθούν τα εξής θέµατα: Παραστάσεις πολυωνύµων Πολυωνυµική Παρεµβολή ιακριτός Μετασχηµατισµός Fourier

Σειρά Προβλημάτων 5 Λύσεις

Αριθμητική Ανάλυση & Εφαρμογές

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ Ασκησεις - Φυλλαδιο 3

Transcript:

ΕΠΛ 1 Δομές Δεδομένων και Αλγόριθμοι Σεπτέμβριος 009 Κατ οίκον Εργασία 1 Σκελετοί Λύσεων Άσκηση 1 Αρχικά θα πρέπει να υπολογίσουμε τον αριθμό των πράξεων που μπορεί να εκτελέσει ο υπολογιστής σε μια ώρα, έστω x, και στη συνέχεια, για κάθε μία περίπτωση, να βρούμε τον ακέραιο για το οποίο o αριθμός των βασικών πράξεων που εκτελεί κάθε ένας από τους αλγόριθμους δεν υπερβαίνει τον x. x = 60(λεπτά)*60(δευτερόλεπτα)* (πράξεις) = 6 1 (α) 6 1 = = (6 1 ) = 6* 6 (β) 6 1 = = (6 1 ) 1/ = 019,7 = 019 (γ) 6 1 = 0 = (6 ) = 6 5 (δ) lg = 6 1 lg = 5 1lg 5 + 1lg = H εξίσωση αυτή μπορεί να λυθεί με προσεγγιστικές μεθόδους. Παρατηρούμε ότι, αν θέσουμε = k, τότε η εξίσωση μπορεί να γραφτεί ως k k = 5 + 1lg k lg k =,86 k + lg k =,86 Επομένως, ψάχνουμε να εντοπίσουμε k τέτοιο ώστε k + lg k =.86. Με τη βοήθεια ενός απλού προγράμματος που δίνει τιμές στο k μέχρι να προσεγγίσει τον πιο πάνω στόχο, παίρνουμε ότι για k = 9,56, τότε lg k = 5.0 και k + lg k =.86. Επομένως, συμπεραίνουμε ότι x 9,56. (ε) 6 1 = log (6 1 ) = log = log (6 1 log ) = = 5,0 = 5 log 1 (ζ) 1 6 1 log(6 ) log log 1 (log(6 )) log = log(log(6 )) = log 5,0 = 5 1 Άσκηση Πιο κάτω παρουσιάζεται η σωστή σειρά των συναρτήσεων από τη μικρότερη τάξη προς τη μεγαλύτερη. f () = + f () = f 1 () = f () = 0 1

ΕΠΛ 1 Δομές Δεδομένων και Αλγόριθμοι Σεπτέμβριος 009 + Ο( ) Πρέπει να δείξουμε ότι υπάρχουν σταθερές c και 0 τέτοιες ώστε + c για κάθε 0 Έστω ότι c = και 0 =. + για κάθε ( και για κάθε ) + Ω( ) Έστω ότι ισχύει, δηλαδή + Ω( ). Τότε c, 0 τ.ω. + c για κάθε 0, 1 c για κάθε 0. 1 Καθώς το τείνει στο άπειρο, το τείνει στο μηδέν. Επομένως δεν είναι δυνατόν να υπάρχει θετική σταθερά c που να ικανοποιεί την πιο πάνω σχέση. Αυτό μας δίνει αντίφαση στην αρχική μας υπόθεση και συμπεραίνουμε ότι + Ω( ) Ο( ) Πρέπει να δείξουμε ότι υπάρχουν σταθερές c και 0 τέτοιες ώστε c για κάθε 0 Θα αποδείξουμε ότι το ζητούμενο ισχύει για c = 1 και 0 = 1. Έστω Π(), 1, η πρόταση Π() c Θα αποδείξουμε ότι η πρόταση ισχύει για κάθε 1 με τη μέθοδο της επαγωγής: Βάση της επαγωγής Για =1 έχουμε 1 < 1, και η Π(1) έπεται. Υπόθεση της επαγωγής Έστω ότι η Π() ισχύει για = k, δηλαδή k k. Βήμα της επαγωγής (k+1) = k + k + 1 Θα αποδείξουμε την πρόταση Π(k+1). k για κάθε k 1 k k k+1 που συμπληρώνει την απόδειξη. Υπόθεση επαγωγής Ω( ) Έστω ότι ισχύει, δηλαδή Ω( ). Τότε

ΕΠΛ 1 Δομές Δεδομένων και Αλγόριθμοι Σεπτέμβριος 009 c, 0 τ.ω. c για κάθε 0, Τότε έχουμε c για κάθε 0 = c -1 για κάθε 0 c( -1) για κάθε max( 0,1), από την πρόταση Π(-1) πιο πάνω Επομένως, αν Ω( ) τότε υπάρχουν c και 0 τέτοια ώστε c..( -1) για κάθε max( 0,1), δηλαδή, υπάρχουν c και 0 τέτοια ώστε c ή c ( 1) 0 1 Προφανώς όμως δεν υπάρχει σταθερά c > 0 που να ικανοποιεί την πιο πάνω ανισότητα καθώς το μεγαλώνει απεριόριστα. (Ο λόγος τείνει στο 0 καθώς το 0 1 τείνει στο.) Αυτό μας οδηγεί σε αντίφαση και επομένως η υπόθεση μας ότι Ω( ) είναι λανθασμένη. Ο(0 ) Πρέπει να δείξουμε ότι υπάρχουν σταθερές c και 0 τέτοιες ώστε c0 για κάθε 0 δηλαδή c για κάθε 0 Έστω ότι c = 1 και 0 = 1. για κάθε 1 (1 για κάθε 1) Ω(0 ) Έστω ότι ισχύει, δηλαδή Ω(0 ). Τότε c, 0 τ.ω. c0 για κάθε 0, Τότε έχουμε c0 για κάθε 0 = c για κάθε 0 Επομένως αν Ω(0 ) τότε υπάρχουν c και 0 τέτοια ώστε c. για κάθε 0, δηλαδή υπάρχουν c και 0 τέτοια ώστε c c Προφανώς όμως δεν υπάρχει σταθερά c>0 τέτοια ώστε καθώς το μεγαλώνει απεριόριστα αφού ο λόγος τείνει στο 0 καθώς το τείνει στο. Αυτό μας οδηγεί σε αντίφαση και επομένως Ω(0 ).

ΕΠΛ 1 Δομές Δεδομένων και Αλγόριθμοι Σεπτέμβριος 009 Άσκηση (i) Αφού f()o(g()), τότε υπάρχουν c και 0 τέτοια ώστε f() c.g(), για κάθε 0 Παίρνοντας λογάριθμους και στα δύο σκέλη της ανισότητας έχουμε ότι log f() log (c.g()) = log c + log g() για κάθε 0 Θέτοντας c = log c + 1 έχουμε ότι log c + log g() c log g() για κάθε 0 εφόσον η συνάρτηση log g() > 1. Αυτό υποθέτουμε ότι ισχύει αφού οι συναρτήσεις μας αναφέρονται σε χρόνους εκτέλεσης (αριθμό βασικών πράξεων που εκτελούνται). (ii) Η πρόταση δεν είναι αληθής όπως φαίνεται στο πιο κάτω αντιπαράδειγμα. Για f ()=, f() = g()=, g() = και ενώ O(), Ο( ). (iii) Η πρόταση είναι ορθή. Αφού f ()O(g()), τότε υπάρχουν c και 0 τέτοια ώστε f () cg(), για κάθε 0 f() (cg()) = c g() Θέτουμε c = c και έχουμε ότι f () c g(), για κάθε 0 Επομένως το ζητούμενο έπεται. Άσκηση Α. Έστω Τ() ο χρόνος εκτέλεσης της διαδικασίας σε δεδομένο μεγέθους. Τότε, T() i i0 j0 1 i0 i 1 i0 ( 1) ( )( ) ( 1)( ) O( i0 i ) Β. Για να βρούμε τον χρόνο εκτέλεσης της διεργασίας, παρατηρούμε ότι ο χρόνος εκτέλεσης του τρίτου βρόχου εξαρτάται από την τιμή j, η οποία καθορίζεται από τον δεύτερο βρόχο. Ο πιο κάτω πίνακας δείχνει τον χρόνο εκτέλεσης του εσωτερικού βρόχου, T (j), σαν συνάρτηση του j:

ΕΠΛ 1 Δομές Δεδομένων και Αλγόριθμοι Σεπτέμβριος 009 j 0 1-1 T (j) 1 Ο χρόνος εκτέλεσης των δύο εσωτερικών βρόχων, T,, είναι ίσος με το άθροισμα των χρόνων εκτέλεσης, T (j), δηλαδή ( 1) T, = 1 + + + + = ( ) Παρατηρούμε ότι ο εξωτερικός βρόγχος είναι ανεξάρτητος από τους εσωτερικούς, άρα ο συνολικός χρόνος εκτέλεσης του προγράμματος, T total, είναι ίσος με το γινόμενο του αριθμού των επαναλήψεων του εξωτερικού βρόγχου επί τον χρόνο εκτέλεσης των εσωτερικών βρόγχων T,. Υποθέτουμε χωρίς βλάβη της γενικότητας ότι το είναι πολλαπλάσιο του. Στην περίπτωση αυτή ο αριθμός των επαναλήψεων του εξωτερικού βρόγχου είναι log και ο ζητούμενος χρόνος εκτέλεσης log ( log ). T total Γ. 1. waste(it ){. it sum=0;. for (i = 1; i<= ; i++) {. if (i mod == 0) { 5. for (j = 1; j <= i; j++) 6. sum++; 7. for (j = ; j >= i; j--) 8. sum++; 9. }. } 11. if ( > 1) 1. for ( i = 1; i <= ; i++ ) 1. waste (/); 1. } Για να μπορέσουμε να υπολογίσουμε το Τ(), πρέπει πρώτα να υπολογίσουμε τους χρόνους εκτέλεσης των βρόχων στις γραμμές 5-6, 7-8 κα -. Γράφουμε Τ(εσ 1 ), Τ(εσ ) και Τ(εξ) για τους χρόνους αυτούς, αντίστοιχα. Τ(εσ 1 ) = i Τ(εσ 1 ) = i + 1 Τ(εσ 1 ) + Τ(εσ ) = i + i + 1 = + 1 Θ() Παρατηρούμε ότι ο εξωτερικός βρόχος εκτελεί / επαναλήψεις του κορμού του, επομένως T ( ) 5

ΕΠΛ 1 Δομές Δεδομένων και Αλγόριθμοι Σεπτέμβριος 009 Έστω Τ() ο χρόνος εκτέλεσης της wait(). Τότε η τιμή του Τ() δίνεται από την πιο κάτω αναδρομική εξίσωση T ( 1) 1 T ( ) T ( / ) [T ( / ) ] T ( / ) T ( / ) ( / ) T( / ) T( / ) Διακρίνουμε την πιο κάτω γενική μορφή για την εξίσωση. i T ( ) T ( / ) i. Θέτουμε k = lg και παίρνουμε ότι. k T ( ) T ( / ) k k i lg T (1) lg 1 lg ( lg( )) Άσκηση 5 it av-case(it A[], it ){ r = 0; for (i = 0; i < ; i++) if (A[i] == -1) break; else r++; retur r; } Με κόκκινο χρώμα φαίνονται οι βασικές πράξεις του προγράμματος (δηλαδή ), ενώ με μπλε χρώμα φαίνονται οι πράξεις που εκτελούνται σε κάθε επανάληψη του βρόγχου. Σε περίπτωση που εντοπιστεί το στοιχείο -1 στον πίνακα, εκτελούνται ακόμη τρεις εντολές, ενώ κάθε ανεπιτυχής επανάληψη εκτελεί 6 εντολές (οι εντολές που εμφανίζονται με μπλε χρώμα). Διακρίνουμε τις πιο κάτω περιπτώσεις. Aν A[0] = -1 θα εκτελεστούν 6 πράξεις Aν A[1] = -1 θα εκτελεστούν 1 πράξεις Aν A[] = -1 θα εκτελεστούν 18 πράξεις Aν A[-1] = -1 θα εκτελεστούν 6 πράξεις Αν 1 Α θα εκτελεστούν 6 + 6 πράξεις 6

ΕΠΛ 1 Δομές Δεδομένων και Αλγόριθμοι Σεπτέμβριος 009 Συνδυάζοντας τα πιο πάνω αποτελέσματα με τις πιθανότητες που τους αντιστοιχούν έχουμε ότι, στη μέση περίπτωση, ο αριθμός βασικών πράξεων που εκτελούνται από τον αλγόριθμο είναι 1 1 1 (6 6) (6 1 18... 6) 1 1..6(1... ) ( 1) 6 6 9 9 7