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

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

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

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

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

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

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

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΕΠΛ 231 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ ΚΑΤ ΟΙΚΟΝ ΕΡΓΑΣΙΑ 1 ΗΜΕΡΟΜΗΝΙΑ ΠΑΡΑΔΟΣΗΣ: 22/02/10

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

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

Ενότητα 1: Εισαγωγή Ασκήσεις και Λύσεις

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

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

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

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

1o Φροντιστήριο ΗΥ240

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

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

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

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

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

Πολυπλοκότητα Αλγορίθµων

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

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

Διακριτά Μαθηματικά [Rosen, κεφ. 3] Γιάννης Εμίρης Τμήμα Πληροφορικής & Τηλεπικοινωνιών, ΕΚΠΑ Οκτώβριος 2018

Διάλεξη 19: Αλγόριθμοι ΤαξινόμησηςII. Διδάσκων: Παναγιώτης Ανδρέου

(Γραμμικές) Αναδρομικές Σχέσεις

(Γραμμικές) Αναδρομικές Σχέσεις

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

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

Υπολογιστικά & Διακριτά Μαθηματικά

(Γραμμικές) Αναδρομικές Σχέσεις

Επιμέλεια διαφανειών: Δ. Φωτάκης Τροποποιήσεις-προσθήκες: Α. Παγουρτζής. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

Δομές Δεδομένων Ενότητα 2

Πανεπιστήμιο Ιωαννίνων Τμήμα Μηχανικών Η/Υ και Πληροφορικής Δομές Δεδομένων [ΠΛΥ302] Χειμερινό Εξάμηνο 2013

Εργαστήριο 6: Αναζήτηση, Ανάλυση Πολυπλοκότητας

Σχεδίαση και Ανάλυση Αλγορίθμων

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

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

Πανεπιστήμιο Ιωαννίνων Τμήμα Πληροφορικής Δομές Δεδομένων [ΠΛΥ302] Χειμερινό Εξάμηνο 2012

Τίτλος Μαθήματος: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

1 Ανάλυση αλγορίθµων. 2 Συµβολισµοί O, Ω και Θ. 3 Αναδροµικές εξισώσεις

Αναδρομή (Recursion) Πώς να λύσουμε ένα πρόβλημα κάνοντας λίγη δουλειά και ανάγοντας το υπόλοιπο να λυθεί με τον ίδιο τρόπο.

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

ιδάσκοντες: Φ. Αφράτη,. Φωτάκης,. Σούλιου Επιμέλεια διαφανειών:. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

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

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

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

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

ιαίρει-και-βασίλευε ημήτρης Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο

Μαθηµατικά για Πληροφορική

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

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

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

Διαίρει-και-Βασίλευε. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 2

Σχεδίαση & Ανάλυση Αλγορίθμων

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΘΕΩΡΗΤΙΚΗ ΑΣΚΗΣΗ 2 ΛΥΣΕΙΣ Γραμμικές Δομές Δεδομένων, Ταξινόμηση

Αναδροµή (Recursion) ύο παρεξηγήσεις. Σκέψου Αναδροµικά. Τρίγωνο Sierpinski Μη αναδροµικός ορισµός;

Διάλεξη 5: Κάτω Φράγμα για Αλγόριθμους Εκλογής Προέδρου. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

Μαθηματική Επαγωγή. Τεχνικές Απόδειξης. Αποδείξεις Ύπαρξης. Μαθηματική Επαγωγή

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

ίκτυα Ταξινόµησης (CLR κεφάλαιο 28)

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

Διαίρει-και-Βασίλευε. Διαίρει-και-Βασίλευε. MergeSort. MergeSort. Πρόβλημα Ταξινόμησης: Είσοδος : ακολουθία n αριθμών (α 1

Διακριτά Μαθηματικά. Γιάννης Εμίρης. Τμήμα Πληροφορικής & Τηλεπικοινωνιών ΕΚΠΑ. Οκτώβριος

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

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

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

B = {x A : f(x) = 1}.

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

Τηλ , Fax: , URL:

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

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

ρυθιμός αύξησης συναρτήσεων

Υπολογιστικά & Διακριτά Μαθηματικά

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

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

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

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

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

ΚΕΦΑΛΑΙΟ 12: Θεωρία υπολογισµών

Αριθµοθεωρητικοί Αλγόριθµοι και το. To Κρυπτοσύστηµα RSA

Σημειωματάριο μαθήματος 1ης Νοε. 2017

Ανάλυση Αλγορίθµων. Σύντοµη επανάληψη (ΕΠΛ 035).

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

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

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

ΗΥ240: οµές εδοµένων. ιδάσκουσα: Παναγιώτα Φατούρου ΗΥ240 - Παναγιώτα Φατούρου 2

Quicksort [Hoare, 62] Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Quicksort 1

ΗΥ240: οµές εδοµένων

ΘΕΩΡΗΜΑ ROLLE. τέτοιο ώστε. στο οποίο η εφαπτομένη είναι παράλληλη στον άξονα χχ. της γραφικής παράστασης της f x με. Κατηγορίες Ασκήσεων

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

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

Λύσεις Εξετάσεων Φεβρουαρίου Ακ. Έτους

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

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές δεδομένων. Ενότητα 1η: Εισαγωγή Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών

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

Transcript:

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 231: Δομές Δεδομένων και Αλγόριθμοι ΘΕΩΡΗΤΙΚΗ ΑΣΚΗΣΗ 1 ΛΥΣΕΙΣ Ανάλυση Πολυπλοκότητας ΠΕΡΙΓΡΑΦΗ Σε αυτή την άσκηση καλείστε να αναλύσετε και να υπολογίσετε το χρόνο εκτέλεσης διαφόρων λειτουργιών χρησιμοποιώντας τους ορισμούς που διδαχτήκατε, την μέθοδο της μαθηματικής επαγωγής και την μέθοδο της αντικατάστασης. Άσκηση 1 (15 μονάδες) Χρησιμοποιείστε τον ορισμό «f(x) είναι Ο( g(x) )» για να δείξετε ότι: Διαβάζετε προσεκτικά την εκφώνηση Μην θεωρείτε ότι κάποια βήματα εννοούνται α) 9 4 7 είναι Ο Τότε, εξ ορισμού, πρέπει να υπάρχουν σταθερές c και x 0 τέτοιες ώστε 9 4 7 c x 4 για κάθε x x 0 9 4 7 9 4 7 =21 Συνεπώς ισχύει αφού υπάρχουν σταθερές, δηλ. c=21, x 0 =0 ώστε 9 4 7 c x 4 για κάθε x x 0 β) είναι Ο Τότε, εξ ορισμού, πρέπει να υπάρχουν σταθερές c και x 0 τέτοιες ώστε c x για κάθε x x 0 1 2 για κάθε x 1 Συνεπώς ισχύει αφού υπάρχουν σταθερές, δηλ. c=2, x 0 =1 ώστε c x για κάθε x x 0

Η απόδειξη πρέπει να είναι βάση του ορισμού Ασυμπτωματική ανάλυση δεν επιτρέπεται Η παραγοντοποίηση γ) 4x 17 είναι Ο, αλλά επίσης, ότι το δεν είναι Ο 4x 17 i) Είναι προφανές ότι 4x 17 είναι Ο. είναι λάθος. ii) Ας υποθέσουμε ότι ισχύει είναι Ο 4x 17. Τότε, εξ ορισμού, πρέπει να υπάρχουν σταθερές c και x 0 τέτοιες ώστε x 3 c. 4x 17 για κάθε x x 0. c. 4x 17 c. 4 17 c. 21 Συνεπώς θέλουμε να αποδείξουμε ότι x 3 c. 21 Το οποίο είναι ισοδύναμο με το να αποδείξουμε x 21c το οποίο προφανώς δεν ισχύει για κάθε x 21c. Η απόδειξη πρέπει να είναι βάση του ορισμού Ασυμπτωματική ανάλυση δεν επιτρέπεται Άσκηση 2 (15 μονάδες) Χρησιμοποιείστε την μαθηματική επαγωγή για να αποδείξετε ότι το άθροισμα των πρώτων n θετικών περιττών αριθμών είναι ίσο με n 2. Προσπαθήστε να γράφετε τι θέλετε να αποδείξετε (π.χ., Έστω ότι ισχύει για n=k, να αποδείξω ότι ισχύει για n=k+1 Βασικό βήμα: Π(1) ισχύει αφού 1 = 1 2. Επαγωγική Υπόθεση: Έστω ότι ισχύει η Π(k), δηλ. 1+3+ +(2k 1) = k 2. Επαγωγικό Βήμα: Να αποδείξουμε ότι ισχύει για k+1 1+3+ +(2k 1)+(2(k+1) 1) = (k+1) 2 1+3+ +(2k 1)+(2(k+1) 1) = k 2 + (2(k+1) 1) (επαγωγική υπόθεση) = k 2 + 2k+1 (πράξεις) = (k+1) 2 (παραγοντοποίηση),που είναι του ζητούμενο Άσκηση 3 (15 μονάδες) Υποθέστε ότι κάποιος έχει αναλύσει τον χρόνο εκτέλεσης μίας σειράς αλγορίθμων και δημιούργησε μία λίστα με τις πολυπλοκότητες των

συναρτήσεων τους. Καλείστε να κατατάξατε τις συναρτήσεις αυτές σε κατηγορίες έτσι ώστε δύο συναρτήσεις f(n) και g(n) να ανήκουν στην ίδια κατηγορία αν και μόνο αν ανήκουν στην ίδια τάξη (δηλαδή αν f(n) Θ(g(n)) ή g(n) Θ(f(n)) ). Στην συνέχεια καλείστε να ταξινομήσετε τις κατηγορίες σε αύξουσα σειρά ως προς την τάξη τους. 3 6 7! 5 Κάποιοι, δεν βρήκατε σε ποιες κατηγορίες (τάξεις) ανήκουν οι συναρτήσεις Πρέπει να αποδείξετε ότι μία συνάρτηση Θ(f(n)) είναι πιο μικρή από μία άλλη Θ(g(n)) Πιο κάτω παρουσιάζεται η σωστή σειρά των συναρτήσεων ξεκινώντας από τη μικρότερη τάξη προς τη μεγαλύτερη. Συναρτήσεις που ανήκουν στην ίδια τάξη βρίσκονται γραμμένες στην ίδια γραμμή. 6 lg n n n lg n n 2, n 2 + log n n 3, n 2 + 5n 3 n n 3 + 7n 5 3 n n! Ακολουθεί αιτιολόγηση κάποιων σχέσεων: (i) Σύγκριση 3 n και n! Αποδείχθηκε στις διαλέξεις ότι 3n O(n!) Επιπλέον, μπορούμε να δείξουμε ότι οι δύο συναρτήσεις δεν ανήκουν στην ίδια τάξη, δηλαδή, 3n Ω(n!). Ας υποθέσουμε, για να φτάσουμε σε αντίφαση, ότι 3n Ω(n!). Τότε, εξ ορισμού, πρέπει να υπάρχουν σταθερές c και n 0 τέτοιες ώστε 3n c n! για κάθε n n 0 Τότε έχουμε 3n c n! για κάθε n n 0 = c n (n 1)! για κάθε n n0 > (Αποδείχθηκε στις διαλέξεις ότι 3n O(n!)) c n 3n 1 για κάθε n max(n0,7) Επομένως

3n Ω(n!) αν και μόνο αν c τέτοιο ώστε 3n > c n 3n 1 για κάθε n max(n 0,7), 3n Ω(n!) αν και μόνο αν c τέτοιο ώστε 3 > c n για κάθε n max(n0,7), 3n Ω(n!) αν και μόνο αν c τέτοιο ώστε c < 3/n για κάθε n max(n0,7), Προφανώς όμως δεν υπάρχει θετική σταθερά c τέτοια ώστε c < 3/n καθώς το n μεγαλώνει απεριόριστα. (Ο λόγος 3/n τείνει στο 0 καθώς το n τείνει στο άπειρο.) Συμπέρασμα: Δεν υπάρχουν ζεύγος σταθερών c και n0 τέτοιες ώστε 3n c n! Για κάθε n n 0, και 3n Ω(n!). (ii) Σύγκριση n² + 5n³ και n³ Είναι προφανές ότι n³ O(n² + 5n³). Επίσης ισχύει n³ Ω(n² + 5n³) αφού για c=1 και k=1, n² + 5n³ c n³, για κάθε n k. (iii) Σύγκριση lg n και n lg n. Είναι προφανές ότι n O(n lg n), αφού για c = 1, και k = 1 lg n n lg n, για κάθε n k ( 1 n, για κάθε n 1) Από την άλλη δεν ισχύει ότι n Ω(n lg n). Ας υποθέσουμε ότι ότι n Ω(n lg n). Τότε υπάρχουν c και κάθε n0 τέτοια ώστε lg n c n lg n για κάθε n n0. Αυτό συνεπάγεται ότι υπάρχουν c και κάθε n0 τέτοια ώστε 1 c n για κάθε n n0 c 1/n για κάθε n n0 Καθώς το n τείνει στο άπειρο ο λόγος 1/n τείνει στο 0. Επομένως δεν είναι δυνατόν να υπάρχει θετική σταθερά c που να ικανοποιεί την πιο πάνω σχέση. Συμπέρασμα: n Ω(n lg n). (iv) Σύγκριση lg n και Ας υποθέσουμε ότι lg n O( ). Τότε για κάθε c και κάθε n0 υπάρχει k > n0 τέτοιο ώστε lg k > c k και κατά συνέπεια lg 2 k > (c ) 2 = c 2. Αυτό συνεπάγεται ότι lg2 n O(n) που γνωρίζουμε από τις διαλέξεις ότι δεν ισχύει. Επομένως lg n O( n) και το ζητούμενο έπεται. Μπορεί επίσης να δειχθεί ότι lg n Ω( ).

Άσκηση 4 (40 μονάδες) Να αναλύσετε τον χρόνο εκτέλεσης χείριστης περίπτωσης των πιο κάτω σαν συνάρτηση του n. Υποθέστε, χωρίς βλάβη της γενικότητας, ότι το n είναι δύναμη του 2. Α) sum=0; for ( i=1; i<=n; i*=2 ) for ( j=1; j<=i; j++ ) sum++; Έστω ότι i=2 k Συνεπώς μπορούμε να μετασχηματίσουμε το Α ως εξής: sum=0; for ( k=0; k<=lg 2 n; k++ ) for ( j=1; j<=2 k ; j++ ) sum++; Α=Εσωτερικός Βρόγχος (for ( j=1; j<=2k; j++ )) = 2 k Εξωτερικός Βρόγχος (for ( k=0; k<=lg2n; k++ )) = 2.2 1 2 1 2 2 1 B) r=0; for ( i=1; i<= ; i++ ) for ( j=1; j<=n; j*=2 ) if ( n % 2 == 0 ) //το n είναι άρτιος for ( k=1; k<=n; k++ ) r++; else //το n είναι περιττός r ; Επειδή είναι όλοι ανεξάρτητοι, η ανάλυση γίνεται πιο έυκολα Α=Εσωτερικός Βρόγχος (for ( k=1; k<=n; k++ ) r++;) = n Β=Εσωτερικός Βρόγχος (for ( j=1; j<=n; j*=2 )) = lgn * A(=n) = nlgn Εξωτερικός Βρόγχος (for ( i=1; i<= ; i++ )) = * Β= n lgn O n lgn)

Άσκηση 5 (15 μονάδες) Να υπολογίσετε το χρόνο εκτέλεσης του παρακάτω αναδρομικού προγράμματος λύνοντας οποιεσδήποτε αναδρομικές εξισώσεις συναντήσετε με την μέθοδο της αντικατάστασης. Υποθέστε χωρίς βλάβη της γενικότητας ότι το n είναι δύναμη του 2. SplitSum( int n ) { int sum = 0; for ( j=1; j<=n; j++ ) sum++; if ( n > 1 ) return SplitSum( n/2 ); else return 1; } Μία αναδρομική εξίσωση αποτελείται από δύο μέρη, το Βήμα Τερματισμού και το Αναδρομικό Βήμα. Μην ξεχνάτε να αναφέρετε την γενική μορφή. Από την γενική μορφή, σκοπός μας είναι να φθάσουμε στο Βήμα Τερματισμού και να απαλείψουμε τους όρους που έχουν σχέση με την συνάρτηση T. Επιβεβαιώνετε με το master theorem για να είστε πιο σίγουροι για τις απαντήσεις σας. Τ(1) = 1 Τ(n) = T(n/2) + n // Εκτέλεση 1 = T(n/4) + n/2 + n // Εκτέλεση 2 = Τ(n/8) + n/4 + n/2 + n // Εκτέλεση 3 = T(n/2 k ) + n/2 (k 1) +... n/2 1 +n/2 0 //Γενίκευση = Τ(1) + (n/2 (k 1) + + n/2 + n) //Έστω ότι 2 k =n k=log 2 n = 1 + (2n 1) //Γεωμετρική πρόοδος O(n) Επιβεβαίωση με Master Theorem a=1, b=2, c=1, d=1 a=1<b d =2 1 =2 Συνεπώς Τ(n) is O(n d )=O(n)