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

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

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

Transcript

1 Αλγόριθμοι και Πολυπλοκότητα Διαίρει και Βασίλευε Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

2 Διαίρει και Βασίλευε Divide and Conquer Η τεχνική διαίρει και βασίλευε αναφέρεται σε μια κατηγορία αλγοριθμικών τεχνικών όπου:.1 "διασπούμε" την είσοδο σε αρκετά τμήματα.2 επιλύουμε το πρόβλημα σε κάθε τμήμα αναδρομικά.3 συνδυάζουμε τις λύσεις αυτών των υποπροβλημάτων σε μια συνολική λύση Χαροκόπειο Πανεπιστήμιο 2/26

3 Διαίρει και Βασίλευε Divide and Conquer Η τεχνική διαίρει και βασίλευε αναφέρεται σε μια κατηγορία αλγοριθμικών τεχνικών όπου:.1 "διασπούμε" την είσοδο σε αρκετά τμήματα.2 επιλύουμε το πρόβλημα σε κάθε τμήμα αναδρομικά.3 συνδυάζουμε τις λύσεις αυτών των υποπροβλημάτων σε μια συνολική λύση Η ανάλυση του χρόνου εκτέλεσης ενός αλγορίθμου τύπου "διαίρει και βασίλευε" γενικά περιλαμβάνει την επίλυση μιας αναδρομικής σχέσης (recurrence relation), η οποία φράσσει αναδρομικά το χρόνο εκτέλεσης με βάση τους χρόνους εκτέλεσης μικρότερων στιγμιοτύπων. Χαροκόπειο Πανεπιστήμιο 2/26

4 Πρώτη Αναδρομή: MergeSort Ο αλγόριθμος ταξινόμησης MergeSort ταξινομεί μια δεδομένη λίστα αριθμών με τον εξής τρόπο:.1 πρώτα χωρίζει την είσοδο σε δύο ίσα τμήματα,.2 ταξινομεί τα τμήματα αναδρομικά,.3 συγχωνεύει τα δυο ταξινομημένα υποπροβλήματα σε ένα. Χαροκόπειο Πανεπιστήμιο 3/26

5 Πρώτη Αναδρομή: MergeSort Ο αλγόριθμος ταξινόμησης MergeSort ταξινομεί μια δεδομένη λίστα αριθμών με τον εξής τρόπο:.1 πρώτα χωρίζει την είσοδο σε δύο ίσα τμήματα,.2 ταξινομεί τα τμήματα αναδρομικά,.3 συγχωνεύει τα δυο ταξινομημένα υποπροβλήματα σε ένα. Σε κάθε αλγόριθμο "διαίρει και βασίλευε" χρειαζόμαστε μια βασική περίπτωση για την αναδρομή. Στο MergeSort π.χ σταματάμε την αναδρομή όταν έχουμε 2 στοιχεία. Απλά τα συγκρίνουμε και τα επιστρέφουμε στη σωστή σειρά. Χαροκόπειο Πανεπιστήμιο 3/26

6 Συγχώνευση Συγχώνευση είναι η διαδικασία συνδυασμού δύο ταξινομημένων αρχείων σε ένα ταξινομημένο αρχείο. ταξινοµηµένος πίνακας a α) επιλογή µικρότερου ϐ) αντιγραφή σε άλλο πίνακα c γ) µετακίνηση δείκτη ταξινοµηµένος πίνακας b Για εισόδους μεγέθους n γίνεται σε χρόνο O(n). Χαροκόπειο Πανεπιστήμιο 4/26

7 Ανάλυση Χρόνου MergeSort Έστω T(n) ο χρόνος εκτέλεσης της χειρότερης περίπτωσης για στιγμιότυπα μεγέθους n. 1 Ο αλγόριθμος δαπανά το πολύ χρόνο O(n) για να διαιρέσει την είσοδο σε δύο τμήματα μεγέθους n/2 το καθένα T(n/2) για να επιλύσει το κάθε τμήμα O(n) για να συνδυάσει τις λύσεις από τις δύο αναδρομικές κλήσεις. 1 Ας υποθέσουμε προς το παρόν πως n είναι άρτιος. Χαροκόπειο Πανεπιστήμιο 5/26

8 Ανάλυση Χρόνου MergeSort Έστω T(n) ο χρόνος εκτέλεσης της χειρότερης περίπτωσης για στιγμιότυπα μεγέθους n. 1 Άρα ο χρόνος εκτέλεσης T(n) ικανοποιεί την ακόλουθη αναδρομική σχέση (recurrence relation). Για κάποια σταθερά c, όταν n > 2, και T(n) 2T(n/2) + cn T(n) cn. 1 Ας υποθέσουμε προς το παρόν πως n είναι άρτιος. Χαροκόπειο Πανεπιστήμιο 5/26

9 Λύση Αναδρομής Υπόθεση Άρτιας Εισόδου. Γενικά είναι ανακριβές να υποθέσουμε πως το μέγεθος της εισόδου n είναι άρτιος ή είναι δύναμη του 2. Ακριβής Αναδρομή. Για κάποια σταθερά c, για n 2. T(n) T( n/2 ) + T( n/2 ) + cn Για τις αναδρομές που θα μας απασχολήσουν, τα ασυμπτωτικά όρια δεν επηρεάζονται παραβλέποντας τα άνω και κάτω ακέραια μέρη. Χαροκόπειο Πανεπιστήμιο 6/26

10 Τεχνικές Λύσης Αναδρομής Ξεδιπλώνοντας..1 ξεδιπλώνουμε την αναδρομή (unroll) υπολογίζοντας τον χρόνο εκτέλεσης για τα πρώτα λίγα επίπεδα.2 αναγνωρίζουμε ένα μοτίβο (pattern) που μπορεί να συνεχιστεί.3 αθροίζουμε τους χρόνους εκτέλεσης για όλα τα επίπεδα της αναδρομής Χαροκόπειο Πανεπιστήμιο 7/26

11 Τεχνικές Λύσης Αναδρομής Ανάλυση Πρώτων Επιπέδων. πρώτο επίπεδο έχουμε ένα υποπρόβλημα μεγέθους n το οποίο χρειάζεται cn χρόνο συν το χρόνο των αναδρομικών κλήσεων c n c n/2 c n/2 c n c n δεύτερο επίπεδο δύο προβλήματα, το καθένα μεγέθους n/2. Καθένα από αυτά χρειάζεται χρόνο το πολύ cn/2. Συνολικά χρόνο cn συν το χρόνο των αναδρομικών κλήσεων. log n c n/4 c n/4 c n/4 c n/4 c n τρίτο επίπεδο τέσσερα προβλήματα, το καθένα μεγέθους n/4. Καθένα από αυτά χρειάζεται χρόνο το πολύ cn/4. Συνολικά χρόνο cn συν το χρόνο των αναδρομικών κλήσεων. c c c c c c c n c n Χαροκόπειο Πανεπιστήμιο 8/26

12 Τεχνικές Λύσης Αναδρομής c n c n Αναγνώριση Μοτίβου. Στο επίπεδο j της αναδρομής ο αριθμός των υποπροβλημάτων έχει διπλασιαστεί j φορές και άρα έχουμε 2 j υποπροβλήματα. c n/2 c n/2 c n Καθένα από αυτά έχει συρρικνωθεί σε μέγεθος κατά 2 επίσης j φορές. Άρα κάθε υποπρόβλημα έχει μέγεθος n/2 j. Χρειάζεται λοιπόν χρόνο το πολύ cn/2 j. log n c n/4 c n/4 c n/4 c n/4 c n Συνολικά όλα τα υποπροβλήματα του επιπέδου j χρειάζονται χρόνο το πολύ 2 j (cn/2 j ) = cn. c c c c c c c n c n Χαροκόπειο Πανεπιστήμιο 8/26

13 Τεχνικές Λύσης Αναδρομής c n c n Άθροιση Επιπέδων. Ο αριθμός των υποδιπλασιασμών της εισόδου έτσι ώστε να μειωθεί το μέγεθος της από n σε 2 είναι log 2 n 1 αφού ισχύει c n/2 c n/2 c n n 2 k = 2 n = 2k+1 log 2 n = k + 1. log n c n/4 c n/4 c n/4 c n/4 c n Η άθροιση της εργασίας cn για log n επίπεδα μας δίνει συνολικό χρόνο εκτέλεσης O(n log n). c c c c c c c n c n Χαροκόπειο Πανεπιστήμιο 8/26

14 Τεχνικές Λύσης Αναδρομής Μαντεύοντας!.1 ξεκινάμε με μια πρόβλεψη για τη λύση.2 αντικαθιστούμε την πρόβλεψη στην αναδρομική σχέση και ελέγχουμε αν λειτουργεί.3 αιτιολογούμε αυτή την αντικατάσταση χρησιμοποιώντας ένα επιχείρημα επαγωγής ως προς το n Χαροκόπειο Πανεπιστήμιο 9/26

15 Τεχνικές Λύσης Αναδρομής Υποθέστε ότι πιστεύουμε ότι T(n) cn log 2 n για όλα τα n 2. Θέλουμε να το επαληθεύσουμε με την μέθοδο της επαγωγής. για n = 2 έχουμε cn log 2 n = 2c και άρα ισχύει αφού ξέρουμε πως T(2) c. έστω τώρα ότι T(m) cm log 2 m για όλες τις τιμές του m < n για n έχουμε πως T(n) 2T(n/2) + cn 2c(n/2) log 2 (n/2) + cn = cn(log 2 n 1) + cn = cn log 2 n Χαροκόπειο Πανεπιστήμιο 10/26

16 Πολλαπλασιασμός Ακεραίων Η μέθοδος του σχολείου Έστω δύο ακέραιοι αριθμοί x και y οι οποίοι αποτελούνται από n bits. Πόσο χρόνο χρειάζεται ο αλγόριθμος του σχολείου για να πολλαπλασιάσει τους x και y; Χαροκόπειο Πανεπιστήμιο 11/26

17 Πολλαπλασιασμός Ακεραίων Η μέθοδος του σχολείου Έστω δύο ακέραιοι αριθμοί x και y οι οποίοι αποτελούνται από n bits. Πόσο χρόνο χρειάζεται ο αλγόριθμος του σχολείου για να πολλαπλασιάσει τους x και y; Υποθέστε πως θέλουμε να εκτελέσουμε τον πολλαπλασιασμό 13 11, ή σε δυαδικό x = 1101 και y = (1101 επί 1) (1101 επί 1, μετατοπισμένο μια φορά) (1101 επί 0, μετατοπισμένο δύο φορές) (1101 επί 1, μετατοπισμένο τρείς φορές) (δυαδικό 143) Χαροκόπειο Πανεπιστήμιο 11/26

18 Πολλαπλασιασμός Ακεραίων Η μέθοδος του σχολείου Έστω δύο ακέραιοι αριθμοί x και y οι οποίοι αποτελούνται από n bits. Πόσο χρόνο χρειάζεται ο αλγόριθμος του σχολείου για να πολλαπλασιάσει τους x και y; Υποθέστε πως θέλουμε να εκτελέσουμε τον πολλαπλασιασμό 13 11, ή σε δυαδικό x = 1101 και y = (1101 επί 1) (1101 επί 1, μετατοπισμένο μια φορά) (1101 επί 0, μετατοπισμένο δύο φορές) (1101 επί 1, μετατοπισμένο τρείς φορές) (δυαδικό 143) Υπάρχουν n ενδιάμεσες γραμμές με μήκη μέχρι 2n bit (με την μετατόπιση). Ο συνολικός χρόνος είναι λοιπόν O(n 2 ). Χαροκόπειο Πανεπιστήμιο 11/26

19 Πολλαπλασιασμός Ακεραίων Αναδρομικά Λόγω απλότητας υποθέστε πως το n είναι δύναμη του 2. Ας χωρίσουμε τους ακεραίους x και y στο αριστερό και δεξιό τους μέρος. x = x L x R = 2 n/2 x L + x R y = y L y R = 2 n/2 y L + y R Χαροκόπειο Πανεπιστήμιο 12/26

20 Πολλαπλασιασμός Ακεραίων Αναδρομικά Λόγω απλότητας υποθέστε πως το n είναι δύναμη του 2. Ας χωρίσουμε τους ακεραίους x και y στο αριστερό και δεξιό τους μέρος. x = x L x R = 2 n/2 x L + x R y = y L y R = 2 n/2 y L + y R Για παράδειγμα, αν x = τότε x L = x R = Χαροκόπειο Πανεπιστήμιο 12/26

21 Πολλαπλασιασμός Ακεραίων Αναδρομικά Λόγω απλότητας υποθέστε πως το n είναι δύναμη του 2. Ας χωρίσουμε τους ακεραίους x και y στο αριστερό και δεξιό τους μέρος. x = x L x R = 2 n/2 x L + x R y = y L y R = 2 n/2 y L + y R Το γινόμενο xy γράφετε ως xy = (2 n/2 x L + x R )(2 n/2 y L + y R ) = 2 n x L y L + 2 n/2 (x L y R + x R y L ) + x R y R Χαροκόπειο Πανεπιστήμιο 12/26

22 Πολλαπλασιασμός Ακεραίων Αναδρομικά x = x L x R = 2 n/2 x L + x R y = y L y R = 2 n/2 y L + y R xy = 2 n x L y L + 2 n/2 (x L y R + x R y L ) + x R y R.1 οι προσθέσεις χρειάζονται γραμμικό χρόνο.2 οι πολλαπλασιασμοί με δυνάμεις του 2 επίσης γραμμικό χρόνο μιας και είναι απλά μετατοπίσεις προς τα αριστερά.3 οι πολλαπλασιασμοί μπορούν να γίνουν αναδρομικά Χαροκόπειο Πανεπιστήμιο 13/26

23 Πολλαπλασιασμός Ακεραίων Αναδρομικά x = x L x R = 2 n/2 x L + x R y = y L y R = 2 n/2 y L + y R xy = 2 n x L y L + 2 n/2 (x L y R + x R y L ) + x R y R Ο αναδρομικός αλγόριθμος πολλαπλασιασμού αριθμών n bits υπολογίζει τα γινόμενα x L y L, x L y R, x R y L και x R y R έπειτα αποτιμά την παραπάνω παράσταση σε χρόνο O(n) Χαροκόπειο Πανεπιστήμιο 14/26

24 Πολλαπλασιασμός Ακεραίων Αναδρομικά x = x L x R = 2 n/2 x L + x R y = y L y R = 2 n/2 y L + y R xy = 2 n x L y L + 2 n/2 (x L y R + x R y L ) + x R y R Ο αναδρομικός αλγόριθμος πολλαπλασιασμού αριθμών n bits υπολογίζει τα γινόμενα x L y L, x L y R, x R y L και x R y R έπειτα αποτιμά την παραπάνω παράσταση σε χρόνο O(n) Εαν T(n) είναι ο χρόνος στη χειρότερη περίπτωση, έχουμε T(n) 4T(n/2) + O(n) Χαροκόπειο Πανεπιστήμιο 14/26

25 Αναδρομή T(n) 4T(n/2) + O(n).1 Ας υποθέσουμε για λόγους απλότητας πως το n είναι δύναμη του 2. Χαροκόπειο Πανεπιστήμιο 15/26

26 Αναδρομή T(n) 4T(n/2) + O(n).1 Ας υποθέσουμε για λόγους απλότητας πως το n είναι δύναμη του 2..2 Το μέγεθος των υποπροβλημάτων μειώνεται κατά ένα παράγοντα 2 σε κάθε επίπεδο αναδρομής και επομένως φτάνει στη βασική περίπτωση μετά από log 2 n επίπεδα. Χαροκόπειο Πανεπιστήμιο 15/26

27 Αναδρομή T(n) 4T(n/2) + O(n).1 Ας υποθέσουμε για λόγους απλότητας πως το n είναι δύναμη του 2..2 Το μέγεθος των υποπροβλημάτων μειώνεται κατά ένα παράγοντα 2 σε κάθε επίπεδο αναδρομής και επομένως φτάνει στη βασική περίπτωση μετά από log 2 n επίπεδα..3 Ο παράγοντας διακλάδωσης είναι 4 οπότε στο j-οστό επίπεδο του δέντρου έχουμε 4 j υποπροβλήματα, το καθένα μεγέθους n/2 j. Χαροκόπειο Πανεπιστήμιο 15/26

28 Αναδρομή T(n) 4T(n/2) + O(n).1 Ας υποθέσουμε για λόγους απλότητας πως το n είναι δύναμη του 2..2 Το μέγεθος των υποπροβλημάτων μειώνεται κατά ένα παράγοντα 2 σε κάθε επίπεδο αναδρομής και επομένως φτάνει στη βασική περίπτωση μετά από log 2 n επίπεδα..3 Ο παράγοντας διακλάδωσης είναι 4 οπότε στο j-οστό επίπεδο του δέντρου έχουμε 4 j υποπροβλήματα, το καθένα μεγέθους n/2 j..4 Άρα στο j επίπεδο έχουμε συνολικό κόστος 4 j O( n 2 j ) = 2j O(n) Χαροκόπειο Πανεπιστήμιο 15/26

29 Αναδρομή T(n) 4T(n/2) + O(n).1 Ας υποθέσουμε για λόγους απλότητας πως το n είναι δύναμη του 2..2 Το μέγεθος των υποπροβλημάτων μειώνεται κατά ένα παράγοντα 2 σε κάθε επίπεδο αναδρομής και επομένως φτάνει στη βασική περίπτωση μετά από log 2 n επίπεδα..3 Ο παράγοντας διακλάδωσης είναι 4 οπότε στο j-οστό επίπεδο του δέντρου έχουμε 4 j υποπροβλήματα, το καθένα μεγέθους n/2 j..4 Άρα στο j επίπεδο έχουμε συνολικό κόστος 4 j O( n 2 j ) = 2j O(n).5 Συνολικά log 2 n 2 j O(n) O(n) 2 log 2 n = O(n 2 ) j=0 Χαροκόπειο Πανεπιστήμιο 15/26

30 Πολλαπλασιασμός Ακεραίων Αναδρομικά Πρόοδος; Ο αναδρομικός μας αλγόριθμος τρέχει λοιπόν σε χρόνο O(n 2 ). Ίδιο χρόνο με την μέθοδο του σχολείου. Θα χρησιμοποιήσουμε ένα τέχνασμα ώστε να επιταχυνθεί. Χαροκόπειο Πανεπιστήμιο 16/26

31 Πολλαπλασιασμός Ακεραίων Αναδρομικά Πρόοδος; Ο αναδρομικός μας αλγόριθμος τρέχει λοιπόν σε χρόνο O(n 2 ). Ίδιο χρόνο με την μέθοδο του σχολείου. Θα χρησιμοποιήσουμε ένα τέχνασμα ώστε να επιταχυνθεί. Τέχνασμα του Gauss. Ο μαθηματικός Carl Friedrich Gauss ( ) παρατήρησε κάποτε ότι παρόλο που το γινόμενο δύο μιγαδικών αριθμών (a + bi)(c + di) = ac bd + (bc + ad)i φαίνεται να περιλαμβάνει τέσσερις πολλαπλασιασμούς πραγματικών αριθμών, στην πραγματικότητα μπορεί να εκτελεστεί με μόλις τρεις: ac, bd και (a + b)(c + d) αφού bc + ad = (a + b)(c + d) ac bd. Χαροκόπειο Πανεπιστήμιο 16/26

32 Πολλαπλασιασμός Ακεραίων Αναδρομικά Αλγόριθμος των Karatsuba και Ofman x = x L x R = 2 n/2 x L + x R y = y L y R = 2 n/2 y L + y R xy = 2 n x L y L + 2 n/2 (x L y R + x R y L ) + x R y R Ενώ η παράσταση φαίνεται να χρειάζεται 4 πολλαπλασιασμούς, στην πραγματικότητα τρεις αρκούν x L y L x R y R (x L + x R )(y L + y R ) αφού x L y R + x R y L = (x L + x R )(y L + y R ) x L y L x R y R Χαροκόπειο Πανεπιστήμιο 17/26

33 Πολλαπλασιασμός Ακεραίων Αναδρομικά multiply( x, y ) Input: θετικοί ακέραιοι x και y των n bits Output: Το γινόμενο τους if n = 1 then return xy end x L, x R αριστερότερα n/2, δεξιότερα n/2 bit του x y L, y R αριστερότερα n/2, δεξιότερα n/2 bit του y P 1 multiply(x L, y L ) P 2 multiply(x R, y R ) P 3 multiply(x L + x R, y L + y R ) return P 1 2 n + (P 3 P 1 P 2 ) 2 n/2 + P 2 Χαροκόπειο Πανεπιστήμιο 18/26

34 Πολλαπλασιασμός Ακεραίων Αναδρομικά multiply( x, y ) Input: θετικοί ακέραιοι x και y των n bits Output: Το γινόμενο τους if n = 1 then return xy end x L, x R αριστερότερα n/2, δεξιότερα n/2 bit του x y L, y R αριστερότερα n/2, δεξιότερα n/2 bit του y P 1 multiply(x L, y L ) P 2 multiply(x R, y R ) P 3 multiply(x L + x R, y L + y R ) return P 1 2 n + (P 3 P 1 P 2 ) 2 n/2 + P 2 Έχοντας μειώσει σε 3 τις αναδρομικές κλήσεις έχουμε την αναδρομή T(n) 3T(n/2) + O(n). Επειδή η επίδραση αυτή γίνεται σε κάθε αναδρομικό βήμα, οδηγούμαστε σε ένα δραματικά χαμηλότερο χρονικό φράγμα. Η αναδρομή αυτή λύνει σε T(n) = O(n log 2 3 ) = O(n 1.59 ). Στην πράξη επειδή οι σύγχρονες αρχιτεκτονικές πολλαπλασιάζουν 32 ή 64 bits πολύ γρήγορα, θα σταματούσαμε την αναδρομή όταν το n φτάσει αυτές τις τιμές. Χαροκόπειο Πανεπιστήμιο 18/26

35 Κύριο Θεώρημα Master Theorem Θεώρημα Αν T(n) = a T( n/b ) + O(n d ) για κάποιες σταθερές a > 0, b > 1 και d 0, τότε O(n d ) αν d > log b a T(n) = O(n d log n) αν d = log b a O(n log b a ) αν d < log b a. Χαροκόπειο Πανεπιστήμιο 19/26

36 Κύριο Θεώρημα Απόδειξη Ας υποθέσουμε πάλι για λόγους απλότητας ότι το n είναι δύναμη του b. µέγεθος n διακλάδωση a µέγεθος n b µέγεθος n b 2 ϐάθος log b n µέγεθος 1 πλάτος a log b n = n log b a Χαροκόπειο Πανεπιστήμιο 20/26

37 Κύριο Θεώρημα Απόδειξη Ας υποθέσουμε πάλι για λόγους απλότητας ότι το n είναι δύναμη του b. µέγεθος n διακλάδωση a Το μέγεθος των υποπροβλημάτων μειώνεται κατά ένα παράγοντα b σε κάθε επίπεδο αναδρομής, και άρα φτάνει στην βασική περίπτωση μετά από log b n επίπεδα. µέγεθος n b µέγεθος n b 2 ϐάθος log b n µέγεθος 1 πλάτος a log b n = n log b a Χαροκόπειο Πανεπιστήμιο 20/26

38 Κύριο Θεώρημα Απόδειξη Ας υποθέσουμε πάλι για λόγους απλότητας ότι το n είναι δύναμη του b. µέγεθος n διακλάδωση a Το μέγεθος των υποπροβλημάτων μειώνεται κατά ένα παράγοντα b σε κάθε επίπεδο αναδρομής, και άρα φτάνει στην βασική περίπτωση μετά από log b n επίπεδα. Παράγοντας διακλάδωσης a και άρα στο j επίπεδο έχουμε a j υποπροβλήματα με μέγεθος n/b j το καθένα. µέγεθος n b µέγεθος n b 2 µέγεθος 1 ϐάθος log b n πλάτος a log b n = n log b a Χαροκόπειο Πανεπιστήμιο 20/26

39 Κύριο Θεώρημα Απόδειξη Ας υποθέσουμε πάλι για λόγους απλότητας ότι το n είναι δύναμη του b. µέγεθος n διακλάδωση a Το μέγεθος των υποπροβλημάτων μειώνεται κατά ένα παράγοντα b σε κάθε επίπεδο αναδρομής, και άρα φτάνει στην βασική περίπτωση μετά από log b n επίπεδα. µέγεθος n b µέγεθος n b 2 ϐάθος log b n Παράγοντας διακλάδωσης a και άρα στο j επίπεδο έχουμε a j υποπροβλήματα με μέγεθος n/b j το καθένα. Η συνολική εργασία στο επιπέδου j είναι a j O( n b j )d = O(n d ) ( a b d )j. µέγεθος 1 πλάτος a log b n = n log b a Χαροκόπειο Πανεπιστήμιο 20/26

40 Κύριο Θεώρημα Απόδειξη Ας υποθέσουμε πάλι για λόγους απλότητας ότι το n είναι δύναμη του b. Το μέγεθος των υποπροβλημάτων μειώνεται κατά ένα παράγοντα b σε κάθε επίπεδο αναδρομής, και άρα φτάνει στην βασική περίπτωση μετά από log b n επίπεδα. Παράγοντας διακλάδωσης a και άρα στο j επίπεδο έχουμε a j υποπροβλήματα με μέγεθος n/b j το καθένα. µέγεθος n µέγεθος n b µέγεθος n b 2 µέγεθος 1 Η συνολική εργασία στο επιπέδου j είναι a j O( n b j )d = O(n d ) ( a b d )j. Καθώς το j πηγαίνει από 0 έως log b n έχουμε μια γεωμετρική σειρά με λόγο a b d ( ( ) ( ) a a 2 ( ) ) a logb O(n d n ) b d b d b d πλάτος a log b n = n log b a διακλάδωση a ϐάθος log b n Χαροκόπειο Πανεπιστήμιο 20/26

41 Κύριο Θεώρημα Απόδειξη Ας υποθέσουμε πάλι για λόγους απλότητας ότι το n είναι δύναμη του b. µέγεθος n Το μέγεθος των υποπροβλημάτων µέγεθος n b μειώνεται κατά ένα παράγοντα b σε κάθε επίπεδο αναδρομής, και άρα µέγεθος φτάνει στην βασική περίπτωση μετά n b 2 από log b n επίπεδα. Παράγοντας διακλάδωσης a και άρα στο j επίπεδο έχουμε a j υποπροβλήματα με μέγεθος n/b j το καθένα. µέγεθος 1 Η συνολική εργασία στο επιπέδου j είναι a j O( n b j )d = O(n d ) ( a b d )j. Καθώς το j πηγαίνει από 0 έως log b n έχουμε μια γεωμετρική σειρά με λόγο a b d ( ( ) ( ) a a 2 ( ) ) a logb O(n d n ) b d b d b d πλάτος a log b n = n log b a διακλάδωση a ϐάθος log b n Εαν a b d < 1, δηλαδή d > log b a, τότε η σειρά είναι φθίνουσα και το άθροισμα ισούται με τον πρώτο όρο O(n d ). Χαροκόπειο Πανεπιστήμιο 20/26

42 Κύριο Θεώρημα Απόδειξη Ας υποθέσουμε πάλι για λόγους απλότητας ότι το n είναι δύναμη του b. µέγεθος n Το μέγεθος των υποπροβλημάτων µέγεθος n b μειώνεται κατά ένα παράγοντα b σε κάθε επίπεδο αναδρομής, και άρα µέγεθος φτάνει στην βασική περίπτωση μετά n b 2 από log b n επίπεδα. Παράγοντας διακλάδωσης a και άρα στο j επίπεδο έχουμε a j υποπροβλήματα με μέγεθος n/b j το καθένα. µέγεθος 1 Η συνολική εργασία στο επιπέδου j είναι a j O( n b j )d = O(n d ) ( a b d )j. Καθώς το j πηγαίνει από 0 έως log b n έχουμε μια γεωμετρική σειρά με λόγο a b d ( ( ) ( ) a a 2 ( ) ) a logb O(n d n ) b d b d b d πλάτος a log b n = n log b a διακλάδωση a ϐάθος log b n Εάν a b d = 1, δηλαδή d = log b a, τότε όλοι οι O(log n) όροι της σειράς είναι ίσοι με O(nd ) και άρα έχουμε O(n d log n). Χαροκόπειο Πανεπιστήμιο 20/26

43 Κύριο Θεώρημα Απόδειξη Ας υποθέσουμε πάλι για λόγους απλότητας ότι το n είναι δύναμη του b. Το μέγεθος των υποπροβλημάτων μειώνεται κατά ένα παράγοντα b σε κάθε επίπεδο αναδρομής, και άρα φτάνει στην βασική περίπτωση μετά από log b n επίπεδα. Παράγοντας διακλάδωσης a και άρα στο j επίπεδο έχουμε a j υποπροβλήματα με μέγεθος n/b j το καθένα. µέγεθος n µέγεθος n b µέγεθος n b 2 µέγεθος 1 Η συνολική εργασία στο επιπέδου j είναι a j O( n b j )d = O(n d ) ( a b d )j. Καθώς το j πηγαίνει από 0 έως log b n έχουμε μια γεωμετρική σειρά με λόγο a b d ( ( ) ( ) a a 2 ( ) ) a logb O(n d n ) b d b d b d πλάτος a log b n = n log b a διακλάδωση a ϐάθος log b n Εάν a b d > 1, δηλαδή d < log b a, τότε η σειρά είναι αύξουσα και το άθροισμα της δίνεται από τον τελευταίο της όρο ( ) ( ) a logb n d n a = n d log b n = a log b d (b log b n b n = a (log a n)(log b a) = n log b a. Χαροκόπειο Πανεπιστήμιο ) d 20/26

44 Πολλαπλασιασμός Ακεραίων Έχοντας μειώσει σε 3 τις αναδρομικές κλήσεις έχουμε την αναδρομή T(n) 3T(n/2) + O(n). Επειδή η επίδραση αυτή γίνεται σε κάθε αναδρομικό βήμα, οδηγούμαστε σε ένα δραματικά χαμηλότερο χρονικό φράγμα. Χρησιμοποιώντας το κύριο θεώρημα με a = 3, b = 2 και d = 1 και άρα = 3/2 > 1 πέρνουμε πως ο χρόνος είναι a b d T(n) = O(n log 2 3 ) = O(n 1.59 ) Χαροκόπειο Πανεπιστήμιο 21/26

45 Πολλαπλασιασμός Πινάκων Το γινόμενο δύο n n πινάκων X και Y είναι ένας τρίτος πίνακας Z = XY πάλι διαστάσεων n n όπου το στοιχείο (i, j) είναι n Z ij = X ik Y kj. k=1 j i = (i, j) X Y Z Χαροκόπειο Πανεπιστήμιο 22/26

46 Πολλαπλασιασμός Πινάκων Z 11 Z 12 Z 1n X 11 X 12 X 1n Y 11 Y 12 Y 1n Z 21 Z 22 Z 2n X = 21 X 22 X 2n Y Y 22 Y 2n Z n1 Z n2 Z nn X n1 X n2 X nn Y n1 Y n2 Y nn Ο παρακάτω κώδικας υλοποιεί τον αλγόριθμο πολλαπλασιασμού και χρειάζεται O(n 3 ) χρόνο. for ( i = 0 ; i < n ; i ++ ) for ( j = 0 ; j < n ; j ++ ) for ( k = 0, c [ i ] [ j ] = 0. 0 ; k < n ; k++ ) Z [ i ] [ j ] += X [ i ] [ k ] * Y[ k ] [ j ] ; Χαροκόπειο Πανεπιστήμιο 23/26

47 Πολλαπλασιασμός Πινάκων Z 11 Z 12 Z 1n X 11 X 12 X 1n Y 11 Y 12 Y 1n Z 21 Z 22 Z 2n X = 21 X 22 X 2n Y Y 22 Y 2n Z n1 Z n2 Z nn X n1 X n2 X nn Y n1 Y n2 Y nn Ο παρακάτω κώδικας υλοποιεί τον αλγόριθμο πολλαπλασιασμού και χρειάζεται O(n 3 ) χρόνο. for ( i = 0 ; i < n ; i ++ ) for ( j = 0 ; j < n ; j ++ ) for ( k = 0, c [ i ] [ j ] = 0. 0 ; k < n ; k++ ) Z [ i ] [ j ] += X [ i ] [ k ] * Y[ k ] [ j ] ; Το 1969, ο Γερμανός μαθηματικός Volker Strassen ανακοίνωσε έναν αλγόριθμο "διαίρει και βασίλευε" που είναι σημαντικά γρηγορότερος. Χαροκόπειο Πανεπιστήμιο 23/26

48 Πολλαπλασιασμός Πινάκων Διαίρει και Βασίλευε Είναι ιδιαίτερα εύκολο να χωριστεί το πρόβλημα σε υποπροβλήματα αφού μπορεί να εκτελεστεί κατά μπλόκ. Χωρίζουμε τους πίνακες X και Y σε τέσσερα μπλοκ τον καθένα μεγέθους n/2 n/2: [ ] [ ] A B E F X =, Y = C D G H Το γινόμενο τους μπορεί να εκφραστεί συναρτήσει αυτών των μπλόκ σαν να ήταν τα μπλόκ απλά στοιχεία: [ ] [ ] [ ] A B E F AE + BG AF + BH XY = = C D G H CE + DG CF + DH Χαροκόπειο Πανεπιστήμιο 24/26

49 Πολλαπλασιασμός Πινάκων Διαίρει και Βασίλευε [ ] [ ] [ ] A B E F AE + BG AF + BH XY = = C D G H CE + DG CF + DH Ένας αλγόριθμος διαίρει και βασίλευε λοιπόν: υπολογίζει αναδρομικά 8 γινόμενα μισού (n/2) μεγέθους AE, BG, AF, BH, CE, DG, CF και DH και στην συνέχεια κάνει μερικές προσθέσεις Συνολικά χρειάζεται χρόνο T(n) 8T(n/2) + O(n 2 ) που καταλήγει σε O(n 3 ), το ίδιο με τον αλγόριθμο του σχολείου. Χαροκόπειο Πανεπιστήμιο 25/26

50 Πολλαπλασιασμός Πινάκων Ο Αλγόριθμος του Strassen Ο Strassen με έξυπνη άλγεβρα έδειξε πως το γινόμενο XY μπορεί να υπολογιστεί με μόνο 7 υποπροβλήματα n/2 n/2 και περισσότερες προσθέσεις. [ ] P5 + P 4 P 2 + P 6 P 1 + P 2 XY = P 3 + P 4 P 1 + P 5 P 3 P 7 όπου P 1 = A(F H) P 5 = (A + D)(E + H) P 2 = (A + B)H P 6 = (B D)(G + H) P 3 = (C + D)E P 7 = (A C)(E + F) P 4 = D(G E) Συνολικά χρειάζεται χρόνο T(n) 7T(n/2) + O(n 2 ) που από το κύριο θεώρημα προκύπτει ότι είναι O(n log 2 7 ) O(n 2.81 ). Χαροκόπειο Πανεπιστήμιο 26/26

ΠΟΛΛΑΠΛΑΣΙΑΣΜΟΣ (συνέχεια)

ΠΟΛΛΑΠΛΑΣΙΑΣΜΟΣ (συνέχεια) ΠΟΛΛΑΠΛΑΣΙΑΣΜΟΣ (συνέχεια) Πολλαπλασιασμός: μπορούμε καλύτερα; Διαισθητικά, επειδή ο πολλαπλασιασμός φαίνεται να απαιτεί άθροιση περίπου n πολλαπλασίων μιας από τις εισόδους, και δεδομένου ότι κάθε πρόσθεση

Διαβάστε περισσότερα

Πολλαπλασιασμός: αλγόριθμος

Πολλαπλασιασμός: αλγόριθμος ΟΛΛΑΛΑΣΙΑΣΜΟΣ ολλαπλασιασμός: αλγόριθμος Για να πολλαπλασιάσουμε δύο αριθμούς x και κατασκευάζουμε έναν πίνακα από ενδιάμεσα αθροίσματα, κάθε ένα από τα οποία προκύπτει ως γινόμενο του x με ένα ψηφίο του

Διαβάστε περισσότερα

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

Εισαγωγή στην Ανάλυση Αλγορίθμων Εισαγωγή στην Ανάλυση Αλγορίθμων (4) Μεθοδολογία αναδρομικών σχέσεων (Ι) Με επανάληψη της αναδρομής Έστω όπου r και a είναι σταθερές. Βρίσκουμε τη σχέση που εκφράζει την T(n) συναρτήσει της T(n-) την T(n)

Διαβάστε περισσότερα

ΔΥΑΔΙΚΗ ΑΝΑΖΗΤΗΣΗ & ΤΑΞΙΝΟΜΗΣΗ ΜΕ ΣΥΓΧΩΝΕΥΣΗ

ΔΥΑΔΙΚΗ ΑΝΑΖΗΤΗΣΗ & ΤΑΞΙΝΟΜΗΣΗ ΜΕ ΣΥΓΧΩΝΕΥΣΗ ΔΥΑΔΙΚΗ ΑΝΑΖΗΤΗΣΗ & ΤΑΞΙΝΟΜΗΣΗ ΜΕ ΣΥΓΧΩΝΕΥΣΗ (ΑΛΓΟΡΙΘΜΟΙ, Sanjoy Dasgupta, Christos Papadimitriou, Umesh Vazirani, σελ. 55-62 ΣΧΕΔΙΑΣΜΟΣ ΑΛΓΟΡΙΘΜΩΝ, Jon Kleinberg, Eva Tardos, Κεφάλαιο 5) Δυαδική αναζήτηση

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Εισαγωγή στους Αλγόριθμους

Εισαγωγή στους Αλγόριθμους Εισαγωγή στους Αλγόριθμους Εύη Παπαϊωάννου Σχολή Οργάνωσης και Διοίκησης Επιχειρήσεων Τμήμα Διαχείρισης Πολιτισμικού Περιβάλλοντος και Νέων Τεχνολογιών Σκοποί ενότητας Παρουσίαση και μελέτη αλγορίθμων

Διαβάστε περισσότερα

Εισαγωγή στους Αλγόριθμους

Εισαγωγή στους Αλγόριθμους Εισαγωγή στους Αλγόριθμους Ενότητα 16: Δυαδική αναζήτηση και ταξινόμηση με συγχώνευση Εύη Παπαϊωάννου Σχολή Οργάνωσης και Διοίκησης Επιχειρήσεων Τμήμα Διαχείρισης Πολιτισμικού Περιβάλλοντος και Νέων Τεχνολογιών

Διαβάστε περισσότερα

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

Εισαγωγή στους Αλγορίθμους Εισαγωγή στους Αλγορίθμους Ενότητα 5η Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Η Μέθοδος «Διαίρει & Βασίλευε» Η Μέθοδος

Διαβάστε περισσότερα

Ταξινόμηση με συγχώνευση Merge Sort

Ταξινόμηση με συγχώνευση Merge Sort Ταξινόμηση με συγχώνευση Merge Sort 7 2 9 4 2 4 7 9 7 2 2 7 9 4 4 9 7 7 2 2 9 9 4 4 Πληροφορικής 1 Διαίρει και Βασίλευε Η μέθοδος του «Διαίρει και Βασίλευε» είναι μια γενική αρχή σχεδιασμού αλγορίθμων

Διαβάστε περισσότερα

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Ταξινόμηση. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Ταξινόμηση. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Δομές Δεδομένων Ταξινόμηση Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Το πρόβλημα Είσοδος n αντικείμενα a 1, a 2,..., a n με κλειδιά (συνήθως σε ένα πίνακα, ή λίστα, κ.τ.λ)

Διαβάστε περισσότερα

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

Διαίρει-και-Βασίλευε. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 2 Διαίρει-και-Βασίλευε Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 2 Διαίρει-και-Βασίλευε Γενική µέθοδος σχεδιασµού αλγορίθµων: Διαίρεση σε ( 2) υποπροβλήµατα (σηµαντικά) µικρότερου µεγέθους.

Διαβάστε περισσότερα

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

Διαίρει-και-Βασίλευε. Διαίρει-και-Βασίλευε. MergeSort. MergeSort. Πρόβλημα Ταξινόμησης: Είσοδος : ακολουθία n αριθμών (α 1 Διαίρει-και-Βασίλευε Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Διαίρει-και-Βασίλευε Γενική μέθοδος

Διαβάστε περισσότερα

Αναδρομικές Σχέσεις «ιαίρει-και-βασίλευε»

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Αλγόριθµοι. Παράδειγµα. ιαίρει και Βασίλευε. Παράδειγµα MergeSort. Τεχνικές Σχεδιασµού Αλγορίθµων

Αλγόριθµοι. Παράδειγµα. ιαίρει και Βασίλευε. Παράδειγµα MergeSort. Τεχνικές Σχεδιασµού Αλγορίθµων Τεχνικές Σχεδιασµού Αλγορίθµων Αλγόριθµοι Παύλος Εφραιµίδης pefraimi@ee.duth.gr Ορισµένες γενικές αρχές για τον σχεδιασµό αλγορίθµων είναι: ιαίρει και Βασίλευε (Divide and Conquer) υναµικός Προγραµµατισµός

Διαβάστε περισσότερα

Τεχνικές Σχεδιασμού Αλγορίθμων

Τεχνικές Σχεδιασμού Αλγορίθμων Τεχνικές Σχεδιασμού Αλγορίθμων Διαίρει και Βασίλευε Δυναμικός Προγραμματισμός Απληστία Π. Μποζάνης ΤHMMY - Αλγόριθμοι 2014-2015 1 Διαίρει και Βασίλευε Βασικά Βήματα Διαίρει: Κατάτμηση του αρχικού προβλήματος

Διαβάστε περισσότερα

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

Σχεδίαση και Ανάλυση Αλγορίθμων Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 4.0 Επιλογή Αλγόριθμοι Επιλογής Select και Quick-Select Σταύρος Δ. Νικολόπουλος 2016-17 Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Ιωαννίνων Webpage: www.cs.uoi.gr/~stavros

Διαβάστε περισσότερα

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

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ Ενότητα 13: Αλγόριθμοι-Μεγάλων ακεραίων- Εκθετοποίηση- Πολλαπλασιασμός πινάκων -Strassen Μαρία Σατρατζέμη Τμήμα Εφαρμοσμένης Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

Σχεδίαση Αλγορίθμων -Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο

Σχεδίαση Αλγορίθμων -Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο Σχεδίαση Αλγορίθμων Διαίρει και Βασίλευε http://delab.csd.auth.gr/~gounaris/courses/ad auth gounaris/courses/ad 1 Διαίρει και Βασίλευε Η γνωστότερη ρημέθοδος σχεδιασμού αλγορίθμων: 1. Διαιρούμε το στιγμιότυπο

Διαβάστε περισσότερα

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

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ Διάλεξη 14: Αλγόριθμοι Ταξινόμησης Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Οι αλγόριθμοι ταξινόμησης 3) Mergesort Ταξινόμηση με Συγχώνευση 4) BucketSort Ταξινόμηση με Κάδους Διδάσκων:

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Αλγοριθμικές Τεχνικές. Brute Force. Διαίρει και Βασίλευε. Παράδειγμα MergeSort. Παράδειγμα. Τεχνικές Σχεδιασμού Αλγορίθμων

Αλγοριθμικές Τεχνικές. Brute Force. Διαίρει και Βασίλευε. Παράδειγμα MergeSort. Παράδειγμα. Τεχνικές Σχεδιασμού Αλγορίθμων Τεχνικές Σχεδιασμού Αλγορίθμων Αλγοριθμικές Τεχνικές Παύλος Εφραιμίδης, Λέκτορας http://pericles.ee.duth.gr Ορισμένες γενικές αρχές για τον σχεδιασμό αλγορίθμων είναι: Διαίρει και Βασίλευε (Divide and

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

auth Αλγόριθμοι - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο

auth Αλγόριθμοι - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο Σχεδίαση Αλγορίθμων Διαίρει και Βασίλευε http://delab.csd.auth.gr/courses/algorithms/ auth 1 Διαίρει και Βασίλευε Η γνωστότερη ρημέθοδος σχεδιασμού αλγορίθμων: 1. Διαιρούμε το στιγμιότυπο του προβλήματος

Διαβάστε περισσότερα

Αλγοριθμικές Τεχνικές

Αλγοριθμικές Τεχνικές Αλγοριθμικές Τεχνικές Παύλος Εφραιμίδης, Λέκτορας http://pericles.ee.duth.gr Αλγοριθμικές Τεχνικές 1 Τεχνικές Σχεδιασμού Αλγορίθμων Ορισμένες γενικές αρχές για τον σχεδιασμό αλγορίθμων είναι: Διαίρει και

Διαβάστε περισσότερα

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

Διάλεξη 09: Αλγόριθμοι Ταξινόμησης I Διάλεξη 09: Αλγόριθμοι Ταξινόμησης I Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Οι αλγόριθμοι ταξινόμησης: Α. SelectionSort Ταξινόμηση με Επιλογή Β. InsertionSort Ταξινόμηση με Εισαγωγή

Διαβάστε περισσότερα

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

Εισαγωγή στους Αλγορίθμους Ενότητα 5η Εισαγωγή στους Αλγορίθμους Ενότητα 5η Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Αλγόριθμοι Ταξινόμησης Μέρος 2

Αλγόριθμοι Ταξινόμησης Μέρος 2 Αλγόριθμοι Ταξινόμησης Μέρος 2 Μανόλης Κουμπαράκης 1 Προχωρημένοι Αλγόριθμοι Ταξινόμησης Στη συνέχεια θα παρουσιάσουμε τρείς προχωρημένους αλγόριθμους ταξινόμησης: treesort, quicksort και mergesort. 2

Διαβάστε περισσότερα

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

Αλγόριθμοι και Πολυπλοκότητα Αλγόριθμοι και Πολυπλοκότητα Ανάλυση Αλγορίθμων Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ανάλυση Αλγορίθμων Η ανάλυση αλγορίθμων περιλαμβάνει τη διερεύνηση του τρόπου

Διαβάστε περισσότερα

Κεφάλαιο 4. Διαίρει και Βασίλευε (Divide and Conquer) Παύλος Εφραιμίδης V1.1,

Κεφάλαιο 4. Διαίρει και Βασίλευε (Divide and Conquer) Παύλος Εφραιμίδης V1.1, Κεφάλαιο 4 Διαίρει και Βασίλευε (Divide and Conquer) Παύλος Εφραιμίδης V1.1, 2015-01-19 Χρησιμοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne. 1 Διαίρει και Βασίλευε (Divide-and-Conquer) Διαίρει-και-βασίλευε

Διαβάστε περισσότερα

Merge Sort (Ταξινόμηση με συγχώνευση) 6/14/2007 3:04 AM Merge Sort 1

Merge Sort (Ταξινόμηση με συγχώνευση) 6/14/2007 3:04 AM Merge Sort 1 Merge Sort (Ταξινόμηση με συγχώνευση) 7 2 9 4 2 4 7 9 7 2 2 7 9 4 4 9 7 7 2 2 9 9 4 4 6/14/2007 3:04 AM Merge Sort 1 Κύρια σημεία για μελέτη Το παράδειγμα του «διαίρει και βασίλευε» ( 4.1.1) Merge-sort

Διαβάστε περισσότερα

ΕΠΛ 232 Αλγόριθµοι και Πολυπλοκότητα 2-1

ΕΠΛ 232 Αλγόριθµοι και Πολυπλοκότητα 2-1 ιαίρει και Βασίλευε Στην ενότητα αυτή θα µελετηθούν τα εξής θέµατα: Η Μέθοδος Σχεδιασµού Αλγορίθµων ιαίρει και Βασίλευε Επίλυση Αναδροµικών Εξισώσεων ΕΠΛ 3 Αλγόριθµοι και Πολυπλοκότητα - ιαίρει και Βασίλευε

Διαβάστε περισσότερα

Σχεδίαση Αλγορίθμων -Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο

Σχεδίαση Αλγορίθμων -Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο Πολλαπλασιασμός μεγάλων ακεραίων (1) Για να πολλαπλασιάσουμε δύο ακεραίους με n 1 και n 2 ψηφία με το χέρι, θα εκτελέσουμε n 1 n 2 πράξεις πολλαπλασιασμού Πρόβλημα ρβημ όταν έχουμε πολλά ψηφία: A = 12345678901357986429

Διαβάστε περισσότερα

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

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΦΡΟΝΤΙΣΤΗΡΙΟ ΑΛΓΟΡΙΘΜΩΝ ΒΟΗΘΟΣ: ΒΑΓΓΕΛΗΣ ΔΟΥΡΟΣ 1 ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΦΡΟΝΤΙΣΤΗΡΙΟ ΑΛΓΟΡΙΘΜΩΝ ΒΟΗΘΟΣ: ΒΑΓΓΕΛΗΣ ΔΟΥΡΟΣ Φροντιστήριο #10: Αλγόριθμοι Διαίρει & Βασίλευε: Master Theorem, Αλγόριθμοι Ταξινόμησης, Πιθανοτικός

Διαβάστε περισσότερα

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

Διάλεξη 19: Αλγόριθμοι ΤαξινόμησηςII. Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 19: Αλγόριθμοι ΤαξινόμησηςII Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Οι αλγόριθμοι ταξινόμησης: Γ. MergeSort Ταξινόμηση με Συγχώνευση Δ. BucketSort Ταξινόμηση με Κάδους Διδάσκων:

Διαβάστε περισσότερα

Χαρακτηριστικά Δυναμικού Προγραμματισμού. Εισαγωγικά. 2 Δυναμικός Προγραμματισμός

Χαρακτηριστικά Δυναμικού Προγραμματισμού. Εισαγωγικά. 2 Δυναμικός Προγραμματισμός Δυναμικός Προγραμματισμός Τμήμα Ηλεκτρονικών Μηχ. & Μηχ. Υπολογιστών Φθινόπωρο 00 ΣΕΛ 40: Παράλληλοι Αλγόριθμοι και Software Διδάσκων: Τάσος Δημητρίου Δυναμικός Προγραμματισμός είχε υπολογιστεί προηγουμένως

Διαβάστε περισσότερα

Ταχεία Ταξινόμηση Quick-Sort

Ταχεία Ταξινόμηση Quick-Sort Ταχεία Ταξινόμηση Quc-Sort 7 4 9 6 2 2 4 6 7 9 4 2 2 4 7 9 7 9 2 2 9 9 Δομές Δεδομένων και Αλγόριθμοι Εργαστήριο Γνώσης και Ευφυούς Πληροφορικής 1 Outlne Quc-sort Αλγόριθμος Βήμα διαχωρισμού Δένδρο Quc-sort

Διαβάστε περισσότερα

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

Σχεδίαση & Ανάλυση Αλγορίθμων Σχεδίαση & Ανάλυση Αλγορίθμων Ενότητα 3 Αλγόριθμοι Επιλογής Σταύρος Δ. Νικολόπουλος Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Ιωαννίνων Webpage: www.cs.uoi.gr/~stavros Αλγόριθμοι Επιλογής Γνωρίζουμε

Διαβάστε περισσότερα

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

Διάλεξη 09: Αλγόριθμοι Ταξινόμησης I Διάλεξη 09: Αλγόριθμοι Ταξινόμησης I Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Οι αλγόριθμοι ταξινόμησης: Α. SelectoSort Ταξινόμηση με Επιλογή Β. IsertoSort Ταξινόμηση με Εισαγωγή Γ. MergeSort

Διαβάστε περισσότερα

Αλγόριθμοι ταξινόμησης

Αλγόριθμοι ταξινόμησης Αλγόριθμοι Ταξινόμησης Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Οι αλγόριθμοι ταξινόμησης BuubleSort, SelectionSort, InsertionSort, Merger Sort, Quick Soft ΕΠΛ Δομές Δεδομένων και Αλγόριθμοι

Διαβάστε περισσότερα

Ο αλγόριθμος Quick-Sort. 6/14/2007 3:42 AM Quick-Sort 1

Ο αλγόριθμος Quick-Sort. 6/14/2007 3:42 AM Quick-Sort 1 Ο αλγόριθμος Quick-Sort 7 4 9 6 2 2 4 6 7 9 4 2 2 4 7 9 7 9 2 2 9 9 6/14/2007 3:42 AM Quick-Sort 1 Κύρια σημεία για μελέτη Quick-sort ( 4.3) Αλγόριθμος Partition step Δέντρο Quick-sort Παράδειγμα εκτέλεσης

Διαβάστε περισσότερα

Αλγόριθμοι Ταξινόμησης Bubble Sort Quick Sort. Αντρέας Δημοσθένους Καθηγητής Πληροφορικής Ολυμπιάδα 2012

Αλγόριθμοι Ταξινόμησης Bubble Sort Quick Sort. Αντρέας Δημοσθένους Καθηγητής Πληροφορικής Ολυμπιάδα 2012 Αλγόριθμοι Ταξινόμησης Bubble Sort Quick Sort Αντρέας Δημοσθένους Καθηγητής Πληροφορικής Ολυμπιάδα 2012 3 5 1 Ταξινόμηση - Sorting Πίνακας Α 1 3 5 5 3 1 Ταξινόμηση (Φθίνουσα) Χωρίς Ταξινόμηση Ταξινόμηση

Διαβάστε περισσότερα

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

Τίτλος Μαθήματος: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ Τίτλος Μαθήματος: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ Ενότητα 5: Ασκήσεις Μαρία Σατρατζέμη Τμήμα Εφαρμοσμένης Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

Διαβάστε περισσότερα

Δυναμικός Προγραμματισμός

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

Διαβάστε περισσότερα

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

Αλγόριθµοι και Πολυπλοκότητα Αλγόριθµοι και Πολυπλοκότητα Ν. Μ. Μισυρλής Τµήµα Πληροφορικής και Τηλεπικοινωνιών, Πανεπιστήµιο Αθηνών Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα Φεβρουαρίου 0 / ένδρα Ενα δένδρο είναι

Διαβάστε περισσότερα

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 9: ΒΑΣΙΚΕΣ ΤΕΧΝΙΚΕΣ ΣΧΕΔΙΑΣΜΟΥ ΚΑΙ ΑΝΑΛΥΣΗΣ ΑΛΓΟΡΙΘΜΩΝ ΕΞΙΣΟΡΡΟΠΗΣΗ, ΔΙΑΙΡΕΙ ΚΑΙ ΒΑΣΙΛΕΥΕ

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 9: ΒΑΣΙΚΕΣ ΤΕΧΝΙΚΕΣ ΣΧΕΔΙΑΣΜΟΥ ΚΑΙ ΑΝΑΛΥΣΗΣ ΑΛΓΟΡΙΘΜΩΝ ΕΞΙΣΟΡΡΟΠΗΣΗ, ΔΙΑΙΡΕΙ ΚΑΙ ΒΑΣΙΛΕΥΕ Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 9: ΒΑΣΙΚΕΣ ΤΕΧΝΙΚΕΣ ΣΧΕΔΙΑΣΜΟΥ ΚΑΙ ΑΝΑΛΥΣΗΣ ΑΛΓΟΡΙΘΜΩΝ ΕΞΙΣΟΡΡΟΠΗΣΗ, ΔΙΑΙΡΕΙ ΚΑΙ ΒΑΣΙΛΕΥΕ Δημήτριος Κουκόπουλος Σχολή Οργάνωσης και Διοίκησης Επιχειρήσεων Τμήμα

Διαβάστε περισσότερα

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

Σχεδίαση και Ανάλυση Αλγορίθμων Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 3.0 Σταύρος Δ. Νικολόπουλος 0-7 Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Ιωαννίνων Webpage: www.cs.uoi.gr/~stavros Διαίρει και Βασίλευε Quick-sort και Merge-sort

Διαβάστε περισσότερα

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

Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 04: ΠαραδείγματαΑνάλυσης Πολυπλοκότητας/Ανάλυση Αναδρομικών Αλγόριθμων Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: -Παραδείγματα Ανάλυσης Πολυπλοκότητας : Μέθοδοι, παραδείγματα -Γραμμική

Διαβάστε περισσότερα

επιστρέφει το αμέσως μεγαλύτερο από το x στοιχείο του S επιστρέφει το αμέσως μικρότερο από το x στοιχείο του S

επιστρέφει το αμέσως μεγαλύτερο από το x στοιχείο του S επιστρέφει το αμέσως μικρότερο από το x στοιχείο του S Μελετάμε την περίπτωση όπου αποθηκεύουμε ένα (δυναμικό) σύνολο στοιχειών,, τα οποίo είναι υποσύνολο του. Υποστηριζόμενες λειτουργίες αναζήτηση(s,x): εισαγωγή(s,x): διαγραφή(s,x): διάδοχος(s,x): προκάτοχος(s,x):

Διαβάστε περισσότερα

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Ταξινόµηση Mergesort Κεφάλαιο 8. Ε. Μαρκάκης Επίκουρος Καθηγητής

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Ταξινόµηση Mergesort Κεφάλαιο 8. Ε. Μαρκάκης Επίκουρος Καθηγητής ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Ταξινόµηση Mergesort Κεφάλαιο 8 Ε. Μαρκάκης Επίκουρος Καθηγητής Περίληψη Ταξινόµηση µε συγχώνευση Αλγόριθµος Mergesort Διµερής συγχώνευση Αφηρηµένη επιτόπου συγχώνευση Αναλυτική ταξινόµηση

Διαβάστε περισσότερα

Αλγόριθμοι και πολυπλοκότητα Διαίρει και Κυρίευε

Αλγόριθμοι και πολυπλοκότητα Διαίρει και Κυρίευε ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Αλγόριθμοι και πολυπλοκότητα Διαίρει και Κυρίευε Ιωάννης Τόλλης Τμήμα Επιστήμης Υπολογιστών Διαίρει και Κυρίευε 7 9 4 4 7 9 7 7 9 4 4 9 7 7 9 9 4 4 Διαίρει και Κυρίευε

Διαβάστε περισσότερα

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές Δεδομένων. Ιωάννης Γ. Τόλλης Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Δομές Δεδομένων Ιωάννης Γ. Τόλλης Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού

Διαβάστε περισσότερα

Αναδρομικοί Αλγόριθμοι

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

Διαβάστε περισσότερα

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

Ορισµός. Εστω συναρτήσεις: f : N R και g : N R. η f(n) είναι fi( g(n) ) αν υπάρχουν σταθερές C 1, C 2 και n 0, τέτοιες ώστε: Συµβολισµός Ω( ) Τάξη των Συναρτήσεων () Εκτίµηση Πολυπλοκότητας Αλγορίθµων Ορέστης Τελέλης telelis@unipi.gr Ορισµός. Εστω συναρτήσεις: f : N R και g : N R η f(n) είναι Ω( g(n) ) αν υπάρχουν σταθερές C

Διαβάστε περισσότερα

ΑΛΓΟΡΙΘΜΟΙ. Ενότητα 4: Διαίρει και Βασίλευε. Ιωάννης Μανωλόπουλος, Καθηγητής Αναστάσιος Γούναρης, Επίκουρος Καθηγητής Τμήμα Πληροφορικής ΑΠΘ

ΑΛΓΟΡΙΘΜΟΙ. Ενότητα 4: Διαίρει και Βασίλευε. Ιωάννης Μανωλόπουλος, Καθηγητής Αναστάσιος Γούναρης, Επίκουρος Καθηγητής Τμήμα Πληροφορικής ΑΠΘ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ ΑΛΓΟΡΙΘΜΟΙ Ενότητα 4: Διαίρει και Βασίλευε Ιωάννης Μανωλόπουλος, Καθηγητής Αναστάσιος Γούναρης, Επίκουρος Καθηγητής Άδειες Χρήσης Το παρόν

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Αλγόριθµοι Divide-and- Conquer

Αλγόριθµοι Divide-and- Conquer Αλγόριθµοι Divide-and- Conquer Περίληψη Αλγόριθµοι Divide-and-Conquer Master Theorem Παραδείγµατα Αναζήτηση Ταξινόµηση Πλησιέστερα σηµεία Convex Hull Αλγόριθµοι Divide-and-Conquer Γενική Μεθοδολογία Το

Διαβάστε περισσότερα

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

Δομές Δεδομένων & Αλγόριθμοι Θέματα Απόδοσης Αλγορίθμων 1 Η Ανάγκη για Δομές Δεδομένων Οι δομές δεδομένων οργανώνουν τα δεδομένα πιο αποδοτικά προγράμματα Πιο ισχυροί υπολογιστές πιο σύνθετες εφαρμογές Οι πιο σύνθετες εφαρμογές απαιτούν

Διαβάστε περισσότερα

Ουρές Προτεραιότητας: Υπενθύμιση. Σωροί / Αναδρομή / Ταξινόμηση. Υλοποίηση Σωρού. Σωρός (Εισαγωγή) Ορέστης Τελέλης

Ουρές Προτεραιότητας: Υπενθύμιση. Σωροί / Αναδρομή / Ταξινόμηση. Υλοποίηση Σωρού. Σωρός (Εισαγωγή) Ορέστης Τελέλης Ουρές Προτεραιότητας: Υπενθύμιση Σωροί / Αναδρομή / Ταξινόμηση Ορέστης Τελέλης telelis@unipi.gr Τμήμα Ψηφιακών Συστημάτων, Πανεπιστήμιο Πειραιώς (Abstract Data Type) με μεθόδους: Μπορεί να υλοποιηθεί με

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Ασκήσεις (2) Άσκηση 1 Άσκηση 1 Ασκήσεις () Εισαγωγή στην Ανάλυση Αλγορίθμων Υποθέστε ότι συγκρίνουμε την υλοποίηση της ταξινόμησης με εισαγωγή και της ταξινόμησης με συγχώνευση στον ίδιο υπολογιστή. Για εισόδους μεγέθους n,

Διαβάστε περισσότερα

Δυναμικός Προγραμματισμός

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

Διαβάστε περισσότερα

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων Άσκηση 1 α) Η δομή σταθμισμένης ένωσης με συμπίεση διαδρομής μπορεί να τροποποιηθεί πολύ εύκολα ώστε να υποστηρίζει τις

Διαβάστε περισσότερα

Εισαγωγή στην επιστήμη των υπολογιστών. Λογισμικό Υπολογιστών Κεφάλαιο 8ο Αλγόριθμοι

Εισαγωγή στην επιστήμη των υπολογιστών. Λογισμικό Υπολογιστών Κεφάλαιο 8ο Αλγόριθμοι Εισαγωγή στην επιστήμη των υπολογιστών Λογισμικό Υπολογιστών Κεφάλαιο 8ο Αλγόριθμοι 1 Έννοια Ανεπίσημα, ένας αλγόριθμος είναι μια βήμα προς βήμα μέθοδος για την επίλυση ενός προβλήματος ή την διεκπεραίωση

Διαβάστε περισσότερα

2. Να γράψετε έναν αριθμό που είναι μεγαλύτερος από το 3,456 και μικρότερος από το 3,457.

2. Να γράψετε έναν αριθμό που είναι μεγαλύτερος από το 3,456 και μικρότερος από το 3,457. 1. Ένα κεφάλαιο ενός βιβλίου ξεκινάει από τη σελίδα 32 και τελειώνει στη σελίδα 75. Από πόσες σελίδες αποτελείται το κεφάλαιο; Αν το κεφάλαιο ξεκινάει από τη σελίδα κ και τελειώνει στη σελίδα λ, από πόσες

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 2

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 2 Εισαγωγή στους Αλγορίθμους Φροντιστήριο 2 Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό

Διαβάστε περισσότερα

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 1

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 1 Εισαγωγή στους Αλγορίθμους Φροντιστήριο 1 Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό

Διαβάστε περισσότερα

1 Αριθμητική κινητής υποδιαστολής και σφάλματα στρογγύλευσης

1 Αριθμητική κινητής υποδιαστολής και σφάλματα στρογγύλευσης 1 Αριθμητική κινητής υποδιαστολής και σφάλματα στρογγύλευσης Στη συγκεκριμένη ενότητα εξετάζουμε θέματα σχετικά με την αριθμητική πεπερασμένης ακρίβειας που χρησιμοποιούν οι σημερινοί υπολογιστές και τα

Διαβάστε περισσότερα

Fast Fourier Transform

Fast Fourier Transform Fast Fourier Transform Παναγιώτης Πατσιλινάκος ΕΜΕ 19 Οκτωβρίου 2017 Παναγιώτης Πατσιλινάκος (ΕΜΕ) Fast Fourier Transform 19 Οκτωβρίου 2017 1 / 20 1 Εισαγωγή Στόχος Προαπαιτούμενα 2 Η ιδέα Αντιστροφή -

Διαβάστε περισσότερα

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

Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 6: ΠαραδείγματαΑνάλυσης Πολυπλοκότητας/Ανάλυση Αναδρομικών Αλγόριθμων Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: -Παραδείγματα Ανάλυσης Πολυπλοκότητας : Μέθοδοι, παραδείγματα -Γραμμική

Διαβάστε περισσότερα

Περιεχόμενα. Κεφάλαιο 3 Οι ιδιότητες των αριθμών Αριθμητικά σύνολα Ιδιότητες Περισσότερες ιδιότητες...

Περιεχόμενα. Κεφάλαιο 3 Οι ιδιότητες των αριθμών Αριθμητικά σύνολα Ιδιότητες Περισσότερες ιδιότητες... Περιεχόμενα Πρόλογος 5 Κεφάλαιο Βασικές αριθμητικές πράξεις 5 Τέσσερις πράξεις 5 Σύστημα πραγματικών αριθμών 5 Γραφική αναπαράσταση πραγματικών αριθμών 6 Οι ιδιότητες της πρόσθεσης και του πολλαπλασιασμού

Διαβάστε περισσότερα

1η Σειρά Γραπτών Ασκήσεων

1η Σειρά Γραπτών Ασκήσεων 1/20 Ασυμπτωτικός Συμβολισμός, Αναδρομικές Σχέσεις 1η Σειρά Γραπτών Ασκήσεων Αλγόριθμοι και Πολυπλοκότητα ΣΗΜΜΥ, Εθνικό Μετσόβιο Πολυτεχνείο 1 Ασυμπτωτικός Συμβολισμός, Αναδρομικές Σχέσεις 2 3 4 5 2/20

Διαβάστε περισσότερα

Ταξινόμηση. Παύλος Εφραιμίδης. Δομές Δεδομένων Ταξινόμηση 1

Ταξινόμηση. Παύλος Εφραιμίδης. Δομές Δεδομένων Ταξινόμηση 1 Ταξινόμηση Παύλος Εφραιμίδης Δομές Δεδομένων Ταξινόμηση 1 Το πρόβλημα της ταξινόμησης Δομές Δεδομένων Ταξινόμηση 2 Ταξινόμηση Δίνεται πολυ-σύνολο Σ με στοιχεία από κάποιο σύμπαν U (πχ. U = το σύνολο των

Διαβάστε περισσότερα

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

Αλγόριθµοι και Πολυπλοκότητα Αλγόριθµοι και Πολυπλοκότητα Ν. Μ. Μισυρλής Τµήµα Πληροφορικής και Τηλεπικοινωνιών, Πανεπιστήµιο Αθηνών Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου 2017 1 / 20 Επιλογή Το πρόβληµα

Διαβάστε περισσότερα

Κεφάλαιο 4. Διαίρει και Βασίλευε (Divide and Conquer) Χρησιµοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

Κεφάλαιο 4. Διαίρει και Βασίλευε (Divide and Conquer) Χρησιµοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne. Κεφάλαιο 4 Διαίρει και Βασίλευε (Divide and Conquer) Χρησιµοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne. 1 Διαίρει και Βασίλευε (Divide-and-Conquer) Διαίρει-και-βασίλευε (γενικά) Χωρίζουµε

Διαβάστε περισσότερα

Περιεχόμενα. Κεφάλαιο 3 Οι ιδιότητες των αριθμών... 37 3.1 Αριθμητικά σύνολα... 37 3.2 Ιδιότητες... 37 3.3 Περισσότερες ιδιότητες...

Περιεχόμενα. Κεφάλαιο 3 Οι ιδιότητες των αριθμών... 37 3.1 Αριθμητικά σύνολα... 37 3.2 Ιδιότητες... 37 3.3 Περισσότερες ιδιότητες... Περιεχόμενα Πρόλογος... 5 Κεφάλαιο Βασικές αριθμητικές πράξεις... 5. Τέσσερις πράξεις... 5. Σύστημα πραγματικών αριθμών... 5. Γραφική αναπαράσταση πραγματικών αριθμών... 6.4 Οι ιδιότητες της πρόσθεσης

Διαβάστε περισσότερα

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

Στοιχεία Αλγορίθµων και Πολυπλοκότητας Στοιχεία Αλγορίθµων και Πολυπλοκότητας Ορέστης Τελέλης telelis@unipi.gr Τµήµα Ψηφιακών Συστηµάτων, Πανεπιστήµιο Πειραιώς Ο. Τελέλης Πανεπιστήµιο Πειραιώς Πολυπλοκότητα 1 / 16 «Ζέσταµα» Να γράψετε τις συναρτήσεις

Διαβάστε περισσότερα

Αλγόριθμοι και πολυπλοκότητα Συγχωνευτική Ταξινόμηση

Αλγόριθμοι και πολυπλοκότητα Συγχωνευτική Ταξινόμηση ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Αλγόριθμοι και πολυπλοκότητα Συγχωνευτική Ταξινόμηση Ιωάννης Τόλλης Τμήμα Επιστήμης Υπολογιστών Συγχωνευτική Ταξινόμηση (Merge Sort) 7 2 9 4 2 4 7 9 7 2 2 7 9 4

Διαβάστε περισσότερα

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

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ Ενότητα 3: Ασυμπτωτικός συμβολισμός Μαρία Σατρατζέμη Τμήμα Εφαρμοσμένης Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

Διαβάστε περισσότερα

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

Δομές Δεδομένων & Αλγόριθμοι - Πίνακες 1 Πίνακες Οι πίνακες έχουν σταθερό μέγεθος και τύπο δεδομένων. Βασικά πλεονεκτήματά τους είναι η απλότητα προγραμματισμού τους και η ταχύτητα. Ωστόσο δεν παρέχουν την ευελιξία η οποία απαιτείται

Διαβάστε περισσότερα

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

Αλγόριθμοι και Πολυπλοκότητα Αλγόριθμοι και Πολυπλοκότητα Ροή Δικτύου Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Μοντελοποίηση Δικτύων Μεταφοράς Τα γραφήματα χρησιμοποιούνται συχνά για την μοντελοποίηση

Διαβάστε περισσότερα

8. Σωροί (Heaps)-Αναδρομή- Προχωρημένη Ταξινόμηση

8. Σωροί (Heaps)-Αναδρομή- Προχωρημένη Ταξινόμηση Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 8. Σωροί (Heaps)-Αναδρομή- Προχωρημένη Ταξινόμηση 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων

Διαβάστε περισσότερα

Όταν οι αριθμοί είναι ομόσημοι Βάζουμε το κοινό πρόσημο και προσθέτουμε

Όταν οι αριθμοί είναι ομόσημοι Βάζουμε το κοινό πρόσημο και προσθέτουμε Κανόνες των προσήμων Στην πρόσθεση Όταν οι αριθμοί είναι ομόσημοι Βάζουμε το κοινό πρόσημο και προσθέτουμε (+) και (+) κάνει (+) + + 3 = +5 (-) και (-) κάνει (-) - - 3 = -5 Όταν οι αριθμοί είναι ετερόσημοι

Διαβάστε περισσότερα

Κεφάλαιο 2.4 Matrix Algorithms

Κεφάλαιο 2.4 Matrix Algorithms Κεφάλαιο 2.4 Matrix Algorithms Παρουσίαση στα πλαίσια του μαθήματος «Παράλληλοι Αλγόριθμοι» Καούρη Γεωργία Μήτσου Βασιλική Κατασκευή ΝxNxN Mesh of trees (1/3) Στον ΝxNxN κύβο προσθέτω τους εξής κόμβους:

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Δέντρα Αναζήτησης. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Δέντρα Αναζήτησης. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Δομές Δεδομένων Δέντρα Αναζήτησης Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Το πρόβλημα Αναζήτηση Θέλουμε να διατηρήσουμε αντικείμενα με κλειδιά και να μπορούμε εκτός από

Διαβάστε περισσότερα

Δυναμικός Προγραμματισμός

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

Διαβάστε περισσότερα

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΜΑΘΗΜΑ: ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ 1. α. Να βάλετε σε αύξουσα σειρά μεγέθους τις παρακάτω συναρτήσεις χρονικής πολυπλοκότητας αλγορίθμων: nlogn, n logn,

Διαβάστε περισσότερα

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

Αλγόριθμοι και Δομές Δεδομένων (Ι) (εισαγωγικές έννοιες) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2015-16 Αλγόριθμοι και Δομές Δεδομένων (Ι) (εισαγωγικές έννοιες) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Τι είναι

Διαβάστε περισσότερα

υναμικός Προγραμματισμός

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

Διαβάστε περισσότερα

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

Στην ενότητα αυτή θα µελετηθούν τα εξής θέµατα: υναµικός Προγραµµατισµός Στην ενότητα αυτή θα µελετηθούν τα εξής θέµατα: Σχεδιασµός αλγορίθµων µε υναµικό Προγραµµατισµό Το πρόβληµα του πολλαπλασιασµού πινάκων ΕΠΛ 3 Αλγόριθµοι και Πολυπλοκότητα 3- υναµικός

Διαβάστε περισσότερα

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές Δεδομένων. Ιωάννης Γ. Τόλλης Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Δομές Δεδομένων Ιωάννης Γ. Τόλλης Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού

Διαβάστε περισσότερα

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

Ανάλυση Αλγορίθµων. Σύντοµη επανάληψη (ΕΠΛ 035). Ανάλυση Αλγορίθµων Σύντοµη επανάληψη (ΕΠΛ 035). Περίληψη Ανάλυση αλγορίθµων Ο, Θ, Ω Ανάλυση µη αναδροµικών αλγόριθµων Ανάλυση αναδροµικών αλγόριθµων Εµπειρική Ανάλυση Visualization Απόδοση Αλγορίθµων Απόδοση

Διαβάστε περισσότερα

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΘΕΩΡΗΤΙΚΗ ΑΣΚΗΣΗ 1 ΛΥΣΕΙΣ Ανάλυση Πολυπλοκότητας ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 231: Δομές Δεδομένων και Αλγόριθμοι Εαρινό Εξάμηνο 2013 ΘΕΩΡΗΤΙΚΗ ΑΣΚΗΣΗ 1 ΛΥΣΕΙΣ Ανάλυση Πολυπλοκότητας Διδάσκων Καθηγητής: Παναγιώτης Ανδρέου Ημερομηνία Υποβολής:

Διαβάστε περισσότερα

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

ΚΕΦΑΛΑΙΟ 12: Θεωρία υπολογισµών ΚΕΦΑΛΑΙΟ 12: Θεωρία υπολογισµών 1 Συναρτήσεις και ο υπολογισµός τους 2 Μηχανές Turing 3 Καθολικές γλώσσες προγραµµατισµού 4 Μια µη υπολογίσιµη συνάρτηση 5 Πολυπλοκότητα προβληµάτων 1 Συναρτήσεις Μία συνάρτηση

Διαβάστε περισσότερα

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

Αλγόριθµοι και Πολυπλοκότητα Αλγόριθµοι και Πολυπλοκότητα Ν. Μ. Μισυρλής Τµήµα Πληροφορικής και Τηλεπικοινωνιών, Πανεπιστήµιο Αθηνών Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 28 Μαΐου 2015 1 / 45 Εισαγωγή Ο δυναµικός

Διαβάστε περισσότερα

Ταξινόμηση. 1. Γρήγορη ταξινόμηση 2. Ταξινόμηση με Συγχώνευση. Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη

Ταξινόμηση. 1. Γρήγορη ταξινόμηση 2. Ταξινόμηση με Συγχώνευση. Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη Ταξινόμηση. Γρήγορη ταξινόμηση. Ταξινόμηση με Συγχώνευση Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη Γρήγορη Ταξινόμηση Η γρήγορη ταξινόμηση qucksort), που αλλιώς ονομάζεται και ταξινόμηση µε διαμερισμό

Διαβάστε περισσότερα