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

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

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

Transcript

1 ΗΥ240: οµές εδοµένων ιδάσκουσα: Παναγιώτα Φατούρου Υποχρεωτικό Μάθηµα 2ου έτους Τµήµα Επιστήµης Υπολογιστών Πανεπιστήµιο Κρήτης

2 Ενότητα 1 Εισαγωγή ΗΥ240 - Παναγιώτα Φατούρου 2

3 Εισαγωγικά Θέµατα Αντικείµενο του µαθήµατος των οµών εδοµένων είναι η αναπαράσταση και η διαχείριση συνόλων αντικειµένων (δεδοµένα), τα οποία επιδέχονται πράξεις εξαγωγής πληροφορίας ή αλλαγής της συνθέσεως τους. Αφηρηµένοι Τύποι εδοµένων Ένα ή περισσότερα σύνολα αντικειµένων και µια συλλογή λειτουργιών (πράξεων) επί των στοιχείων των συνόλων. Παράδειγµα (εύρεση στοιχείου σε πίνακα) Τα δεδοµένα είναι κάποιου τύπου, έστω Type, και υπάρχει µια γραµµική διάταξη ανάµεσά τους: u,v τύπου Type, είτε u < v, ή v < u, ή v = u. ίδεται ένα σύνολο S από στοιχεία τύπου Type και ζητείται απάντηση στο ερώτηµα: «u S?» Σύνολα αντικειµένων: στοιχεία τύπου Type (π.χ., u,v) και πεπερασµένα σύνολα αυτών (π.χ., S) Σύνολο λειτουργιών: Απάντηση της ερώτησης «u S?», όπου: u είναι στοιχείο τύπου Type και S είναι πεπερασµένο σύνολο από στοιχεία τύπου Type. ΗΥ240 - Παναγιώτα Φατούρου 3

4 Εισαγωγικά Θέµατα οµές εδοµένων Μια δοµή δεδοµένων υλοποιεί έναν αφηρηµένο τύπο δεδοµένων. Μια δοµή δεδοµένων εποµένως συµπεριλαµβάνει: ένα σύνολο δεδοµένων τα οποία επιδέχονται επεξεργασία µέσω του συνόλου λειτουργιών που υποστηρίζονται από τον αφηρηµένο τύπο δεδοµένων που υλοποιεί η δοµή µια δοµή αποθήκευσης των δεδοµένων (π.χ., έναν πίνακα, µια λίστα, κλπ.) ένα σύνολο από ορισµούς συναρτήσεων/διαδικασιών, όπου η κάθε συνάρτηση/διαδικασία αντιστοιχίζεται σε µια από τις λειτουργίες της δοµής, ένα σύνολο από «αλγόριθµους», κάθε ένας εκ των οποίων υλοποιεί µια από τις παραπάνω συναρτήσεις/διαδικασίες. Οι βασικές λειτουργίες που υποστηρίζει µια δοµή δεδοµένων είναι: Προσπέλαση Αναζήτηση Εισαγωγή ιαγραφή Ταξινόµηση Αντιγραφή Συγχώνευση ιαχωρισµός ΗΥ240 - Παναγιώτα Φατούρου 4

5 Εισαγωγικά Θέµατα Αλγόριθµοι Αλγόριθµος είναι µια πεπερασµένη ακολουθία υπολογιστικών βηµάτων (ή εντολών) αυστηρά καθορισµένων (που κάθε ένα εκτελείται σε πεπερασµένο χρόνο), τα οποία αν ακολουθηθούν επιλύεται κάποιο πρόβληµα. Ο αλγόριθµος δέχεται κάποια τιµή ή κάποιο σύνολο τιµών ως είσοδο και δίνει κάποια τιµή ή κάποιο σύνολο τιµών ως έξοδο. Είσοδος: εδοµένα που παρέχονται στον αλγόριθµο εξ αρχής (πριν την εκκίνησή του). Έξοδος: δεδοµένα που αποτελούν το αποτέλεσµα του αλγορίθµου. Πρόγραµµα Υλοποίηση ενός αλγορίθµου σε κάποια γλώσσα προγραµµατισµού. ΗΥ240 - Παναγιώτα Φατούρου 5

6 Ένα Απλό Παράδειγµα Αλγορίθµου Ύψωση ενός αριθµού x σε µια ακέραια δύναµη n Algorithm Power(x, n) {// Περιγραφή µε C-like ψευδο-κώδικα // Input: έναν πραγµατικό αριθµό x και έναν ακέραιο αριθµό n // Output: έναν πραγµατικό αριθµό που ισούται µε x n int j = 0; double y = 1; } while (j < n) { y = y*x; j = j+1; } return y; ΗΥ240 - Παναγιώτα Φατούρου 6

7 Τεχνικές Απόδειξης Χρήση παραδείγµατος ή αντιπαραδείγµατος Ισχυρισµός: «Υπάρχει τουλάχιστον ένα στοιχείο x στο σύνολο S που έχει την ιδιότητα P» -> Για να δείξουµε ότι ο ισχυρισµός ισχύει, αρκεί να βρούµε ένα στοιχείο x του S που ικανοποιεί την P. Ισχυρισµός: «Κάθε στοιχείο του S ικανοποιεί την ιδιότητα P» -> Για να δείξουµε ότι ο ισχυρισµός δεν ισχύει, αρκεί να βρούµε ένα στοιχείο x του S που δεν έχει την P. Αντιθετο-αντιστροφή & Απαγωγή εις Άτοπο Ισχυρισµός: «Αν το γινόµενο ab είναι περιττό, τότε και το a είναι περιττό και το b είναι περιττό» Για να αποδειχθεί ότι «αν ο ισχυρισµός p είναι αληθής τότε και ο ισχυρισµός q είναι αληθής», αποδεικνύουµε ότι «αν ο ισχυρισµός ΝΟΤ(q) είναι αληθής, τότε και ο ΝΟΤ(p) είναι αληθής». o Αποδεικνύουµε ότι «Αν ή το α είναι άρτιο ή το b είναι άρτιο, τότε το γινόµενο ab είναι άρτιο». Έστω, χωρίς βλάβη της γενικότητας ότι το a είναι άρτιο, δηλαδή α = 2*k, για κάποιο ακέραιο k. Τότε, το ab = (2*k)*b = 2 * (k*b) είναι άρτιο. Η περίπτωση που το b είναι άρτιο είναι παρόµοια. Με εις άτοπο απαγωγή. Έστω ότι το ab είναι περιττό. Υποθέτουµε για να καταλήξουµε σε άτοπο πως ή το a είναι άρτιο ή το b είναι άρτιο. Έστω χωρίς βλάβη της γενικότητας πως το b είναι άρτιο, δηλαδή b = 2 * k, για κάποιο ακέραιο k. Τότε, το ab = α* (2*k) = 2*(α*k) είναι άρτιο. Αυτό αντιτίθεται στην υπόθεσή µας ότι το ab είναι περιττό. Η περίπτωση που το α είναι άρτιο είναι παρόµοια. ΗΥ240 - Παναγιώτα Φατούρου 7

8 Μαθηµατική Επαγωγή Ζητείται να αποδειχθεί πως ένας ισχυρισµός Ι, που σχετίζεται µε κάποια µεταβλητή j, ισχύει για κάθε τιµή της µεταβλητής j, όπου η j παίρνει τιµές από µια ακολουθία τιµών x 1, x 2,, x n. Αποδεικνύουµε τα εξής: Αν ο ισχυρισµός Ι ισχύει για κάποια τιµή του j (π.χ., την x k ) που µπορεί να είναι οποιαδήποτε τιµή εκτός της τελευταίας της ακολουθίας τιµών της j, τότε ο Ι ισχύει και για την επόµενη τιµή της ακολουθίας τιµών της j (δηλαδή για την x k+1 ). (1) Ο Ι ισχύει για την πρώτη τιµή της ακολουθίας τιµών της j (την x 1 ). (2) αφού από (2) ο ισχυρισµός ισχύει για την χ 1, από (1) ισχύει και για την χ 2. (3) αφού από (3) ο ισχυρισµός ισχύει για την χ 2, από (1) ισχύει και για την χ 3. (4) αφού από (4) ο ισχυρισµός ισχύει για την χ 3, από (1) ισχύει και για την χ 4. (5) αφού από ( ) ο ισχυρισµός ισχύει για την x n-1, από (1) ο ισχυρισµός ισχύει για την x n. O ισχυρισµός ισχύει για όλες τις τιµές της j!!! ( ) ΗΥ240 - Παναγιώτα Φατούρου 8

9 Μαθηµατική Επαγωγή - Παράδειγµα Ορθότητα Αλγόριθµου Power Συµβολίζουµε µε y j την τιµή της µεταβλητής y στην αρχή της j-οστής ανακύκλωσης, j = 1,, n+1. Θα δείξουµε πως y j = x j-1, j=1 n+1. Με επαγωγή στο j. Αρκεί να δείξουµε πως y j = x j-1. Βάση επαγωγής j = 1. Αρχικά, y 1 = 1 = x 0 = x 1-1 = x j-1. Επαγωγική Υπόθεση Έστω ότι για κάποιο k, 1 k < n +1, y k = x k-1. Επαγωγικό Βήµα Θα δείξουµε ότι o ισχυρισµός ισχύει για (k+1): y k+1 = x k. Από αλγόριθµο: y k+1 = y κ *x. Aπό επαγωγική υπόθεση: y k = x k-1. Άρα, y k+1 = x k, όπως απαιτείται. Algorithm Power(x, n) int j = 0; double y = 1; } while (j < n) { y = y*x; j = j+1; } return y; ΗΥ240 - Παναγιώτα Φατούρου 9

10 Μαθηµατική Επαγωγή Ισχυρή Επαγωγή Για κάποιους ισχυρισµούς Ι, δεν µπορεί να αποδειχθεί η (1), αλλά µπορεί να αποδειχθεί ότι: Αν ο ισχυρισµός Ι ισχύει για κάθε τιµή του j που προηγείται στην ακολουθία τιµών της j από οποιαδήποτε τιµή x k x n (δηλαδή αν ο ισχυρισµός ισχύει για τις τιµές x 1, x 2,, x k ), τότε ο Ι ισχύει και για την επόµενη τιµή της ακολουθίας τιµών της j (δηλαδή για την x k+1 ). (1 ) Αποδεικνύεται επίσης ότι: Ο Ι ισχύει για την πρώτη τιµή της ακολουθίας τιµών της j (την x 1 ). (2) Τότε: αφού από (2) ο ισχυρισµός ισχύει για την χ 1, από (1 ) ισχύει και για την χ 2. (3) αφού από (2) και (3) ο ισχυρισµός ισχύει για τις χ 1, χ 2, από (1 ) ισχύει και για την χ 3. (4) αφού από (2), (3) και (4) ο ισχυρισµός ισχύει για τις χ 1, χ 2, χ 3, από (1 ) ισχύει και για την χ 4. (5) αφού από (2), (3), (4), (5),, ( ) ο ισχυρισµός ισχύει για τις x 1, x 2, x 3, x 4,, x n-1, από (1 ) ο ισχυρισµός ισχύει για την x n. ( ) O ισχυρισµός ισχύει για όλες τις τιµές της j!!! ΗΥ240 - Παναγιώτα Φατούρου 10

11 Μαθηµατική Επαγωγή Ισχυρή Επαγωγή Αιγυπτιακός Πολλαπλασιασµός ίνεται η συνάρτηση: { 0, αν y = 0 m(x,y) = m(x+x, y/2), αν y άρτιος & 0 x + m(x, y-1), αν y περιττός & 0 Θα δείξω ότι m(x,y) = x*y, θετικό ακέραιο x,y Απόδειξη: Με επαγωγή στο y. Βάση της επαγωγής: Αν y = 0, m(x,y) = 0, αλλά και x*y = 0, οπότε ο ισχυρισµός ισχύει. Επαγωγική Υπόθεση: Έστω οποιαδήποτε τιµή y > 0. Υποθέτουµε ότι m(x,z) = x*z, για κάθε τιµή z, 0 z < y. Επαγωγικό Βήµα: Αποδεικνύουµε τον ισχυρισµό για την τιµή y: m(x*y) = x*y. Αν ο y είναι περιττός: m(x,y) = x + m(x,y-1). Από επαγωγική υπόθεση (z = y-1 < y) ισχύει ότι m(x,y-1) = x*(y-1). Άρα: m(x,y) = x + x*(y-1) = x + x*y x = x*y. Αν ο y είναι άρτιος: m(x,y) = m(x+x, y/2). Από επαγωγική υπόθεση (z = y/2 < y) ισχύει ότι m(x,y) = (x+x)*y/2 = x*y. Άρα, m(x,y) = x*y. Και στις δύο περιπτώσεις, ο ισχυρισµός ισχύει. ΗΥ240 - Παναγιώτα Φατούρου 11

12 Κριτήρια Επιλογής Αλγορίθµων Χρόνος Εκτέλεσης (χρονική πολυπλοκότητα ή πολυπλοκότητα χρόνου) Απαιτούµενος χώρος αποθηκευτικές θέσεις (θέσεις µνήµης) που χρησιµοποιούνται (χωρική πολυπλοκότητα ή πολυπλοκότητα χώρου) Ευκολία προγραµµατισµού Γενικότητα Ανάλυση Αλγορίθµου αποκαλείται η εύρεση των πόρων (χρόνος, χώρος) που αυτός απαιτεί για να εκτελεστεί. Μας ενδιαφέρει κυρίως η χρονική και η χωρική πολυπλοκότητα. Οι δύο αυτοί παράµετροι καθορίζουν την αποδοτικότητα του αλγορίθµου. Το µοντέλο υπολογισµού αποτελεί την αφαιρετική θεώρηση του υλικού που διατίθεται για την εκτέλεση του αλγορίθµου. ΗΥ240 - Παναγιώτα Φατούρου 12

13 Το Μοντέλο Υπολογισµού RAM Μηχανή Τυχαίας Προσπέλασης (Random Access Machine, RAM) Το σύστηµα παρέχει: τους αναγκαίους καταχωρητές (registers) έναν συσσωρευτή (accumulator) µια ακολουθία αποθηκευτικών θέσεων (memory cells) µε διευθύνσεις 0, 1, 2, που αποτελούν την κύρια µνήµη Το σύστηµα είναι σε θέση: να εκτελεί αριθµητικές πράξεις (+, -, *, /, mod) να παίρνει αποφάσεις διακλαδώσεως (if else ) βάσει των τελεστών (==, <, >, =<, >=,!=) να διαβάζει ή να γράφει από και προς οποιαδήποτε θέση µνήµης. ΗΥ240 - Παναγιώτα Φατούρου 13

14 Το Μοντέλο Υπολογισµού RAM Στοιχειώδεις εντολές Καταχώρηση τιµής σε µια µεταβλητή Κλήση µιας µεθόδου Εκτέλεση µιας αριθµητικής πράξης Σύγκριση δύο αριθµών εικτοδότηση πίνακα (συµβολίζουµε µε Α[s..u] έναν πίνακα του οποίου η πρώτη θέση δεικτοδοτείται από την τιµή s ενώ η τελευταία από την τιµή u, συµβολίζουµε επίσης µε A[i] το i-οστό στοιχείο του πίνακα Α, s =< i =< u) Πρόσβαση στη διεύθυνση µνήµης που δείχνει ένας δείκτης Επιστροφή από µια µέθοδο (return) ΗΥ240 - Παναγιώτα Φατούρου 14

15 Το Μοντέλο Υπολογισµού RAM Μέτρηση Μοναδιαίου Κόστους O χρόνος εκτέλεσης κάθε στοιχειώδους εντολής εξαρτάται από το υλικό (είναι ανεξάρτητος από τη γλώσσα προγραµµατισµού) και ισούται µε κάποια σταθερά. Θεωρούµε ότι κάθε τέτοια εντολή εκτελείται σε µία µονάδα χρόνου. Μέτρηση Λογαριθµικού Κόστους Η στοιχειώδης εντολή απαιτεί χρόνο ανάλογο του µήκους της δυαδικής αναπαράστασης των τελεσταίων. Παράδειγµα: Η µετακίνηση ενός αριθµού n από την κύρια µνήµη προς έναν καταχωρητή απαιτεί logn + 1 µονάδες χρόνου. Συνήθως, πραγµατοποιείται ανάλυση των αλγορίθµων βάσει µετρήσεως µοναδιαίου κόστους (εκτός και αν γίνεται εκτενής χρήση πράξεων επί συµβολοσειρών bit). ΗΥ240 - Παναγιώτα Φατούρου 15

16 Χρονική Πολυπλοκότητα Εισάγεται µια µεταβλητή n που εκφράζει το µέγεθος της εισόδου. Παραδείγµατα Στο πρόβληµα ανυψώσεως σε δύναµη το µέγεθος αυτό είναι το n, η δύναµη στην οποία πρέπει να υψωθεί ο δεδοµένος αριθµός. Σε ένα πρόβληµα ταξινόµησης ενός πίνακα, το µέγεθος του προβλήµατος είναι το πλήθος των στοιχείων του πίνακα. Η ύψωση ενός αριθµού στη δύναµη 100 απαιτεί την εκτέλεση περισσότερων στοιχειωδών εντολών από την ύψωση του ίδιου αριθµού σε µια µικρότερη δύναµη, π.χ., στη δύναµη 2! Οµοίως, η ταξινόµηση 1000 αριθµών απαιτεί περισσότερο χρόνο από την ταξινόµηση 3 αριθµών! Αυτό ισχύει γενικότερα: «Ο χρόνος που απαιτεί ένας αλγόριθµος για να εκτελεστεί συχνά εξαρτάται από το µέγεθος της εισόδου»! Χρόνος Εκτέλεσης για συγκεκριµένη είσοδο Ο χρόνος εκτέλεσης (running time) ή η χρονική πολυπλοκότητα ενός αλγορίθµου για µια συγκεκριµένη είσοδο είναι το πλήθος των στοιχειωδών εντολών που εκτελούνται κατά την εκτέλεση του αλγορίθµου µε αυτή την είσοδο. ΗΥ240 - Παναγιώτα Φατούρου 16

17 Υπολογίζοντας το πλήθος των στοιχειωδών εντολών Αλγόριθµος Power Algorithm Power(x, n) int j = 0; 1 double y = 1; 1 } while (j < n) { n+1 y = y*x; 2*n j = j+1; 2*n } return y; 1 Πλήθος Στοιχειωδών Εντολών T(n) = n+1 + 2*n + 2*n + 1 = 5n + 4 Ο παραπάνω τύπος ισχύει για οποιαδήποτε τιµή του n. Το πλήθος των στοιχειωδών εντολών που εκτελεί ο αλγόριθµος είναι µια συνάρτηση του µεγέθους n της εισόδου! ΗΥ240 - Παναγιώτα Φατούρου 17

18 Ένα Ακόµη Παράδειγµα Πρόβληµα Είσοδος Μια ακολουθία από n αριθµούς <a 1, a 2,..., a n >. Έξοδος (output): Μια µετάθεση (αναδιάταξη) < a 1, a 2,..., a n > της ακολουθίας εισόδου έτσι ώστε: a 1 a 2... a n Πως λειτουργεί ο αλγόριθµος αν A = <5,2,4,6,1,3>; Algorithm InsertionSort (Α[1..n]) { // Είσοδος: ένας µη-ταξινοµηµένος πίνακας Α ακεραίων αριθµών // Έξοδος: ο πίνακας Α µε τα στοιχεία του σε αύξουσα διάταξη } int key, i, j; for (j = 2; j n; j++) { key = A[j]; i = j-1; while (i > 0 && A[i] > key) { A[i+1] = A[i]; i = i-1; } A[i+1] = key; } return A; ΗΥ240 - Παναγιώτα Φατούρου 18

19 Ένα Ακόµη Παράδειγµα Algorithm InsertionSort (Α[1..n]) { } int key, i, j; for (j = 2; j n; j++) { key = A[j]; i = j-1; while (i > 0 && A[i] > key) { A[i+1] = A[i]; i = i-1; } A[i+1] = key; } return A; Πως λειτουργεί ο αλγόριθµος αν A = <5,2,4,6,1,3>; ΗΥ240 - Παναγιώτα Φατούρου 19

20 Υπολογίζοντας το πλήθος των στοιχειωδών εντολών Αλγόριθµος InsertionSort Algorithm InsertionSort(A[1..n]) { Κόστος int key, i, j; for (j = 2; j =< n; j=j+1) { > 1+ n + 2*(n-1) key = A[j]; > 2* (n-1) i = j-1; > 2*(n-1) } while (i > 0 && A[i] > key) { > 4 * Σ j=2..n t j A[i+1] = A[i]; > 4 * Σ j=2..n (t j 1) i = i-1; > 2 * Σ j=2..n (t j 1) } A[i+1] = key; > 3 * (n-1) } return A; > 1 t j : ο αριθµός των φορών που ο έλεγχος του while loop εκτελείται για τη συγκεκριµένη τιµή του j, 2 j n. ΗΥ240 - Παναγιώτα Φατούρου 20

21 Υπολογίζοντας το πλήθος των στοιχειωδών εντολών Αλγόριθµος InsertionSort Συνολικός Χρόνος Εκτέλεσης T(n) = 1 + n + 2*(n-1) + 2 * (n-1) + 2*(n-1) + 4 * Σ t j + 4* Σ (t j -1) + 2 * Σ (t j -1) + 3*(n-1) + 1 = 10n *Σ j=2..n t j 6* Σ j=2..n 1 = 10n * Σ j=2..n t j 6 * (n-1) = 4n * Σ j=2..n t j Ποιος είναι ο καλύτερος χρόνος εκτέλεσης που µπορεί να επιτευχθεί από την InsertionSort? O πίνακας είναι εξ αρχής ταξινοµηµένος σε αύξουσα διάταξη. Τότε? t j = 1, j = 2,, n. Εποµένως, T(n) = 4n *(n-1) = 14n 11 γραµµική συνάρτηση του n! ΗΥ240 - Παναγιώτα Φατούρου 21

22 Υπολογίζοντας το πλήθος των στοιχειωδών εντολών Αλγόριθµος InsertionSort Ποιος είναι ο χειρότερος χρόνος εκτέλεσης κατά την εκτέλεση της ΙnsertionSort? Τα στοιχεία του πίνακα είναι σε φθίνουσα διάταξη. Τότε? t j = j, j = 2,, n, και Σ j=2..n t j = Σ j=2..n j = n = (n+2)(n-1)/2 Εποµένως: Τ(n)= 4n (n+2)(n-1) = 5n 2 + 9n - 11 τετραγωνική συνάρτηση του n! ΗΥ240 - Παναγιώτα Φατούρου 22

23 Ανάλυση Χειρότερης περίπτωσης Ο χείριστος χρόνος εκτέλεσης (ή η χρονική πολυπλοκότητα χειρότερης περίπτωσης) ενός αλγορίθµου ορίζεται να είναι ο µέγιστος χρόνος εκτέλεσης για οποιαδήποτε είσοδο µε συγκεκριµένο µέγεθος n (και συνήθως είναι συνάρτηση του n). Πως µπορούµε να βρούµε ένα άνω φράγµα στη χρονική πολυπλοκότητα χειρότερης περίπτωσης ενός αλγορίθµου; Πως µπορούµε να βρούµε ένα κάτω φράγµα στην χρονική πολυπλοκότητα χειρότερης περίπτωσης ενός αλγορίθµου; Μας ενδιαφέρει να βρούµε το χαµηλότερο άνω φράγµα και το υψηλότερο κάτω φράγµα. Σε ποια εκτέλεση του αλγορίθµου πρέπει να εστιάσουµε προκειµένου να υπολογιστούν αυτά; ΗΥ240 - Παναγιώτα Φατούρου 23

24 Ανάλυση Αναµενόµενης Περίπτωσης Αν είναι γνωστή κάποια κατανοµή πιθανότητας επί του συνόλου των στιγµιοτύπων του εν λόγω προβλήµατος (δηλαδή, όλων των δυνατών εισόδων µεγέθους n), τότε είναι δυνατή η ανάλυση αναµενόµενης περίπτωσης, η οποία µας δίνει την αναµενόµενη χρονική πολυπλοκότητα (ή τον αναµενόµενο χρόνο εκτέλεσης) του αλγορίθµου, όταν του δοθεί µια νόµιµη είσοδος µε µέγεθος n. Παράδειγµα Ας υποθέσουµε ότι τα n στοιχεία του πίνακα στον αλγόριθµο InsertionSort έχουν επιλεγεί οµοιόµορφα µε τυχαίο τρόπο από κάποιο αρχικό σύνολο στοιχείων (universe). Πόσες φορές θα εκτελεστεί το σώµα του while loop του αλγορίθµου για οποιαδήποτε τιµή του j; Κατά µέσο όρο, τα µισά στοιχεία στον Α[1..j-1] θα είναι µικρότερα του A[j] και τα άλλα µισά µεγαλύτερα. Εποµένως, το αναµενόµενο πλήθος στοιχείων που θα ελεγχθούν είναι j/2. Άρα, t j = j/2. Ο αναµενόµενος χρόνος εκτέλεσης της InsertionSort είναι εποµένως: T(n) = 4n * Σ j=2..n t j = 4n * Σ j=2..n j = 4n * (n+2)(n-1)/2 = (6n + 5n 2 + 5n -10-2)/2 = (5n n -12 )/2. τετραγωνική συνάρτηση του n! ΗΥ240 - Παναγιώτα Φατούρου 24

25 Ανάλυση Χειρότερης περίπτωσης Ανάλυση Αναµενόµενης Περίπτωσης Στο µάθηµα αυτό θα εστιάσουµε στην ανάλυση χειρότερης περίπτωσης για τους ακόλουθους λόγους: Ο χείριστος χρόνος εκτέλεσης ενός αλγορίθµου είναι ένα πάνω φράγµα στον χρόνο εκτέλεσης για οποιαδήποτε είσοδο µεγέθους n. Σε πολλά προβλήµατα, η χείριστη περίπτωση συµβαίνει συχνά (π.χ., αποτυχηµένη αναζήτηση). Ο αναµενόµενος χρόνος εκτέλεσης συχνά δεν είναι πολύ καλύτερος από τον χείριστο χρόνο εκτέλεσης. Από εδώ και στο εξής, οι όροι χρονική πολυπλοκότητα και χρόνος εκτέλεσης ενός αλγορίθµου θα αναφέρονται στη χρονική πολυπλοκότητα χειρότερης περίπτωσης και στο χείριστο χρόνο εκτέλεσης του αλγορίθµου. ΗΥ240 - Παναγιώτα Φατούρου 25

26 Ασυµπτωτική Ανάλυση Η χρονική πολυπλοκότητα της InsertionSort είναι 5n 2 +9n-11. Οι σταθερές 5, 9, -11 δεν µας δίνουν χρήσιµη πληροφορία. Μας ενδιαφέρει κυρίως ο ρυθµός µεταβολής της συνάρτησης της χρονικής πολυπλοκότητας: Από το άθροισµα 5n 2 +9n-11 µας ενδιαφέρει µόνο ο κυρίαρχος όρος 5n 2, αφού οι άλλοι δύο όροι είναι µη σηµαντικοί για µεγάλες τιµές του n. Αγνοούµε επίσης το συντελεστή 5, αφού οι σταθεροί παράγοντες δεν είναι σηµαντικοί για µεγάλες τιµές του n. Λέµε πως η χρονική πολυπλοκότητα της InsertionSort είναι τετραγωνικής τάξης. ΗΥ240 - Παναγιώτα Φατούρου 26

27 Ασυµπτωτική Ανάλυση Συµβολισµός Ο Ορισµός Έστω f(n) και g(n) δύο συναρτήσεις. Η f(n) ανήκει στο Ο(g(n)), f(n) O(g(n)) ή f(n) = O(g(n)), αν υπάρχουν σταθερές c R + (c πραγµατικός, c > 0) και ακέραιος n 0 0, έτσι ώστε για κάθε n n 0 να ισχύει: 0 f(n) cg(n) Ο συµβολισµός Ο υποδηλώνει ότι µια συνάρτηση (f(n)) είναι ασυµπτωτικά άνω φραγµένη. Είναι αξιοσηµείωτο ότι το O(g(n)) είναι ένα σύνολο συναρτήσεων, το σύνολο των συναρτήσεων για τις οποίες η g(n) αποτελεί ασυµπτωτικό άνω φράγµα. Έτσι, ο συµβολισµός f(n) = O(g(n)) (αν και συνηθίζεται γιατί είναι βολικός σε κάποιες περιπτώσεις) δεν είναι µαθηµατικά σωστός. ηλώνει απλά ότι η f(n) είναι µέλος του συνόλου Ο(g(n)). ΗΥ240 - Παναγιώτα Φατούρου 27

28 Ασυµπτωτική Ανάλυση Συµβολισµός Ο ΗΥ240 - Παναγιώτα Φατούρου 28

29 Ασυµπτωτική Ανάλυση Συµβολισµός Ο Παράδειγµα 1: Έστω f(n) = an 2 +bn, όπου a,b θετικές σταθερές. Ισχύει ότι f(n) = O(n 2 ); Απάντηση: Αναζητούµε σταθερές c R + & n 0 0, τ.ω.: an 2 + bn cn 2, για κάθε n n 0 0 (c-a)n 2 bn 0 n [(c-a)n b] (c-a)n - b 0 (αφού n n 0 0) Αν επιλέξουµε c = a+1 και οποιοδήποτε n 0 b, η ανισότητα (c-a)n - b 0 ισχύει. Παράδειγµα 2: Έστω f(n) = 20n nlogn + 5. Ισχύει ότι f(n) = O(n 3 ); Απάντηση: 20n nlogn n 3, για n 1. Αν αποδείξουµε πως υπάρχουν σταθερές c R + & n 0 0 τ. ω. 35n 3 cn 3, n n 0, θα ισχύει και πως f(n) cn 3, n n 0. Άρα, αν επιλέξουµε c = 35 και οποιoδήποτε n 0 1, ο ισχυρισµός f(n) = Ο(n 3 ) αποδεικνύεται. Παράδειγµα 3: Έστω f(n) = 3 logn + loglogn. Ισχύει ότι f(n) = Ο(logn); Απάντηση: 3 logn + loglogn 4 logn, αν n 1. Άρα, αν επιλέξουµε c = 4 και οποιoδήποτε n 0 1, ο ισχυρισµός f(n) = Ο(logn) αποδεικνύεται. ΗΥ240 - Παναγιώτα Φατούρου 29

30 Ασυµπτωτική Ανάλυση Συµβολισµός Ο Λέγοντας ότι ο χρόνος εκτέλεσης ενός αλγορίθµου είναι O(n 2 ) εννοούµε ότι υπάρχει µια συνάρτηση f(n) η οποία ανήκει στο O(n 2 ), τέτοια ώστε για οποιαδήποτε τιµή του n (εκτός ίσως από κάποιες µικρές τιµές), ανεξάρτητα από τη µορφή της κάθε συγκεκριµένης εισόδου µεγέθους n, ο χρόνος εκτέλεσης για αυτή την είσοδο φράσσεται εκ των άνω από την τιµή f(n). εν είναι συνηθισµένο να συµπεριλαµβάνονται σταθεροί παράγοντες και χαµηλότερης τάξης όροι στο συµβολισµό Ο. Ο ισχυρισµός 2n 2 = O(4n 2 + nlogn) είναι σωστός αλλά δεν θεωρείται «κοµψός». Ο ισχυρισµός f(n) O(g(n)) δεν είναι επίσης κοµψός αφού το Ο εµπεριέχει την έννοια του «µικρότερου ή ίσου»: υποδηλώνει ένα µη αυστηρό ασυµπτωτικό άνω φράγµα της f. Επιτρέπεται η χρήση του συµβολισµού Ο σε αριθµητικές εκφράσεις. Μπορούµε να λέµε ότι η f(n) είναι στο h(n) + O(g(n)) υπάρχουν σταθερές c και n 0 τ.ω., για κάθε n n 0, f(n) h(n) + cg(n). ΗΥ240 - Παναγιώτα Φατούρου 30

31 Ασυµπτωτική Ανάλυση - Συµβολισµός Ω Ορισµός Έστω f(n) και g(n) δύο συναρτήσεις. Η f(n) ανήκει στο Ω(g(n)), f(n) Ω(g(n)) ή f(n) = Ω(g(n)), αν υπάρχουν σταθερές c R + (c πραγµατικός, c > 0) και ακέραιος n 0 0, έτσι ώστε, για κάθε n n 0, να ισχύει: 0 cg(n) f(n) Ο συµβολισµός Ω δηλώνει ότι µια συνάρτηση (f(n)) είναι ασυµπτωτικά κάτω φραγµένη. ΗΥ240 - Παναγιώτα Φατούρου 31

32 Ασυµπτωτική Ανάλυση Συµβολισµός Ω Παράδειγµα 1: Έστω f(n) = an 2 +bn, όπου a,b θετικές σταθερές. Θα αποδείξουµε ότι f(n) = Ω(n). Απόδειξη: Αναζητούµε σταθερές c R + & n 0 0 τ.ω., για κάθε n n 0 να ισχύει: an 2 + bn cn αn 2 + (b-c)n 0 an + b-c 0. Aν επιλέξουµε c = b ισχύει ότι an 0, για κάθε n 0 (αφού α R + ), άρα για c = b & n 0 = 0, ο ισχυρισµός αποδεικνύεται. Παράδειγµα 2: Έστω f(n) = 20n nlogn + 5. Ισχύει ότι f(n) = Ω(n 3 ); Απάντηση: 20n nlogn n 3, για n 1. Άρα, αν επιλέξουµε c = 20 και οποιoδήποτε n 0 1, ο ισχυρισµός f(n) = Ω(n 3 ) αποδεικνύεται. Παράδειγµα 3: Έστω f(n) = n 3-10nlogn - 5. Ισχύει ότι f(n) = Ω(n 3 ); Απάντηση: n 3-10nlogn 5 n 3-10n 2 5n 2, για κάθε n 1. Αναζητούµε σταθερές c R + & n 0 0, τ.ω., για κάθε n n 0 να ισχύει: n 3-10nlogn 5 n 3-10n 2 5n 2 cn 3 n 3-15n 2 cn 3 (1-c)n 3-15n 2 0 (1-c)n Επιλέγοντας π.χ., c = 1/2 και n 0 = 30, η τελευταία ανισότητα ισχύει για κάθε n n 0. Άρα, ο ισχυρισµός f(n) = Ω(n 3 ) ισχύει. ΗΥ240 - Παναγιώτα Φατούρου 32

33 Ασυµπτωτική Ανάλυση Συµβολισµός Θ Ορισµός Έστω f(n) και g(n) δύο συναρτήσεις. Η f(n) ανήκει στο Θ(g(n)), f(n) Θ(g(n)) ή f(n) = Θ(g(n)), αν ισχύει ότι f(n) = O(g(n)) και f(n) = Ω(g(n)). Aν f(n) Θ(g(n)), ισχύει ότι υπάρχουν σταθερές c 1, c 2 R+ και ακέραιος n 0 0, έτσι ώστε για κάθε n n 0 να ισχύει: c 1 g(n) f(n) c 2 g(n) Ο συµβολισµός Θ υποδηλώνει ότι µια συνάρτηση (f(n)) είναι ασυµπτωτικά φραγµένη µε αυστηρό τρόπο (η g(n) είναι ένα ασυµπτωτικά αυστηρό φράγµα για την f(n)). ΗΥ240 - Παναγιώτα Φατούρου 33

34 Ασυµπτωτική Ανάλυση Ιδιότητες Μεταβατική Ιδιότητα f(n) = O(g(n)) και g(n) = O(h(n)) f(n) = O(h(n) (το ίδιο ισχύει και για τους συµβολισµούς Ω, Θ). Ανακλαστική Ιδιότητα f(n) = O(g(n)), f(n) = Ω(g(n)) και f(n) = Θ(g(n)) Συµµετρική Ιδιότητα f(n) = Θ(g(n)) αν και µόνο αν g(n) = Θ(f(n)) Αναστροφική Ιδιότητα f(n) = O(g(n)) αν και µόνο αν g(n) = Ω(f(n)) Άλλες Ιδιότητες Αν f(n) = O(g(n)), τότε (cf)(n) = O(g(n)), για οποιαδήποτε σταθερά c R +. Αν f(n) = O(g(n)) και h(n) = O(g(n)), τότε (c 1 f+c 2 h)(n) = O(g(n)) για οποιαδήποτε σταθερές c 1, c 2 R +. ΗΥ240 - Παναγιώτα Φατούρου 34

35 Συνήθεις τάξεις πολυπλοκότητας Χαρακτηριστικές κλάσεις συναρτήσεων και οι µεταξύ τους σχέσεις Ο(1) Ο(log n) O(log κ n), για κάθε k > 1 O( ) n Ο(n) O(n log n) O(n 2 ) O(n k ), για κάθε k > 2 O(2 n ) O(n!) O(n n ) ΗΥ240 - Παναγιώτα Φατούρου 35

36 Size of input Ασυµπτωτική Ανάλυση Γιατί είναι σηµαντική; log n n n n log n n n n ,84 * ,40 * ,15 * ,34 * ,79 * Αυξητικός Χαρακτήρας Συναρτήσεων ΗΥ240 - Παναγιώτα Φατούρου 36

37 Ασυµπτωτική Ανάλυση Γιατί είναι σηµαντική; Size of input n n 2 n 5 2 n 3 n 10 0,01 msec 0,1 msec 0,1 sec 1 msec 59 msec 20 0,02 msec 0,4 msec 3,2 sec 1 sec 58 min 40 0,04 msec 1,6 msec 1,7 min 12,7 days 3855 centuries 50 0,05 msec 2,5 msec 5,2 min 35,7 years 2*10 8 centuries 60 0,06 msec 3,6 msec 13 min 366 centuries 1,3 * centuries Ενδεικτικές Ανάγκες σε Χρόνο Υποτιθέµενων Αλγορίθµων ΗΥ240 - Παναγιώτα Φατούρου 37

38 Ασυµπτωτική Ανάλυση Γιατί είναι σηµαντική; Μέγεθος του µεγαλύτερου στιγµιότυπου ενός προβλήµατος που µπορεί να επιλυθεί σε 1 ώρα Με έναν τρέχον υπολογιστή Με έναν υπολογιστή 100 φορές πιο γρήγορο n Ν 1 100Ν 1 n 2 Ν 2 10Ν 2 2,5Ν 3 Ν 4 +6,64 Ν 5 +4,19 Με έναν υπολογιστή 1000 φορές πιο γρήγορο 1000Ν 1 31,6Ν 2 3,98Ν 3 Ν 4 +9,97 Ν 5 +6,29 Επίδραση βελτιωµένης τεχνολογίας σε διάφορους πολυωνυµικούς και εκθετικούς αλγορίθµους n 5 Ν 3 2 n Ν 4 3 n Ν 5 ΗΥ240 - Παναγιώτα Φατούρου 38

39 Χρήσιµο Μαθηµατικό Υπόβαθρο Εκθέτες & Λογάριθµοι Για οποιουσδήποτε πραγµατικούς αριθµούς α >0, m και n, ισχύουν τα εξής: α 0 = 1, α 1 = α, α -1 = 1/α, (a m ) n = a mn, (a m ) n = (a n ) m a m a n = a m+n, a m /a n = a m-n Συµβολίζουµε µε e = 2,71828 τη βάση των φυσικών (νεπέρειων) λογαρίθµων. Για όλους τους πραγµατικούς αριθµούς x ισχύει ότι: 2 3 i x x x x e = 1+ x+ + + = 2! 3! i! Για οποιουσδήποτε πραγµατικούς αριθµούς a,b,c >0, ισχύουν τα εξής: log b ac = log b a+log b c, log b (α/c) = log b a log b c, log b (1/a) = - log b a log b a c = c log b a log b a = (log c a) / log c b a= b, b = a log a log a log b b c c i= 0 n n, log( Π k= 1ak ) = logak ΗΥ240 - Παναγιώτα Φατούρου k= 1 39

40 Χρήσιµο Μαθηµατικό Υπόβαθρο Κάτω και πάνω ακέραιο µέρος & Παραγοντικά Για κάθε πραγµατικό αριθµό x: το σύµβολο x δηλώνει το µεγαλύτερο ακέραιο που είναι µικρότερος ή ίσος του x και το σύµβολο x δηλώνει το µεγαλύτερο ακέραιο που είναι µεγαλύτερος ή ίσος του x x-1 < x x x < x+1 Για οποιουσδήποτε ακεραίους a,b > 0 ισχύει ότι: x/a /b = x/ab x/a /b = x/ab Για κάθε ακέραιο n, ισχύει ότι n/2 + n/2 = n n! = 1*2* * n, ή n! n n log(n!) = Θ(nlogn) 1 if n=0 n! = n*( n 1)! otherwise ΗΥ240 - Παναγιώτα Φατούρου 40

41 Χρήσιµο Μαθηµατικό Υπόβαθρο Αθροίσµατα Αριθµητική Πρόοδος n n( n+ 1) k = n= k= 1 2 n a1+ a2+ + an = ( a1+ an) 2 n n k 2 n x x = 1+ x+ x + + x = k= 0 x k 1 x = 1 x Γεωµετρική Πρόοδος Αν x < 1, τότε k= 0 Τηλεσκοπική (Telescoping) Σειρά n k= 1 ( a a ) = a a k k 1 n Παράδειγµα = ( ) = 1 k( k+ 1) k k+ 1 n n 1 n 1 k= 1 k= 1 ΗΥ240 - Παναγιώτα Φατούρου 41

42 Ανάλυση Αναδροµικών Αλγορίθµων Είναι η Power1 ο πιο αποδοτικός αλγόριθµος για το πρόβληµα ύψωσης αριθµού σε δύναµη; Algorithm RPower(x, n) { double y; } if (n == 1) return x; y = RPower(x, n/2 ); if n is even else return y*y; return x*y*y; ----> > 1 + Τ( n/2 ) ----> > > 3 Έστω οποιοσδήποτε ακέραιος n και έστω ότι συµβολίζουµε µε T(n) τη χρονική πολυπλοκότητα του RPower() όταν αυτός καλείται µε τη δεύτερη παράµετρο ίση µε το n. Τότε: T(1) = 2 και T(n) = Τ( n/2 ) + 7 (1) Ο όρος αναδροµική σχέση δηλώνει µια εξίσωση ή ανίσωση η οποία ορίζει µια συνάρτηση µέσω της τιµής της για κάποιο µικρότερο όρισµα. Πως µπορούµε να λύσουµε την αναδροµική σχέση (1) (δηλαδή να βρούµε ασυµπτωτικά φράγµατα τύπου Θ ή Ο για το Τ(n); ΗΥ240 - Παναγιώτα Φατούρου 42

43 Trace of RPower RPower(x, 5) RPower(x,5) if (5 == 1) //evaluates to false y = RPower(x, 2); RPower(x,2) if (2 == 1) // evaluates to false y = RPower(x,1); RPower(x,1) if (1 == 1) return x; if (2 is even) return y*y; // x 2 if (5 is even) //evaluates to FALSE return x*y*y; // x 5 Algorithm RPower(x, n) { double y; } if (n == 1) return x; y = RPower(x, n/2 ); if n is even else return y*y; return x*y*y; Memory x n = 5 y = x 2 x n = 2 y = x x n = 1 y ΗΥ240 - Παναγιώτα Φατούρου 43

44 Ανάλυση Αναδροµικών Αλγορίθµων Τεχνικές λεπτοµέρειες που αγνοούνται στην πράξη Υπόθεση ότι οι συναρτήσεις έχουν ακέραια ορίσµατα (άνω και κάτω ακέραια µέρη) Αρχικές συνθήκες Μέθοδοι επίλυσης αναδροµικών εξισώσεων Μέθοδος εικασίας ιατυπώνουµε µια εικασία για τη λύση. Με µαθηµατική επαγωγή προσδιορίζουµε τις σταθερές και αποδεικνύουµε ότι η λύση ισχύει. Μέθοδος επαναληπτικής αντικατάστασης Εφαρµόζουµε επαναληπτικά τον ορισµό της αναδροµικής εξισώσεως µέχρι το T(n) να εκφραστεί ως ένα άθροισµα όρων που εξαρτώνται µόνο από το n και τις αρχικές συνθήκες. Γενική µέθοδος ΗΥ240 - Παναγιώτα Φατούρου 44

45 Επίλυση Αναδροµικών Σχέσεων Μέθοδος Εικασίας Παράδειγµα 1: Προσδιορισµός άνω φράγµατος για την αναδροµική σχέση: 1 if n = 1 T ( n) = 2 T ( n / 2 ) + n otherwise Εικάζουµε ότι η λύση είναι Ο(nlogn). Αποδεικνύουµε επαγωγικά ότι T(n) cnlogn, για κατάλληλη τιµή της σταθεράς c > 0. Αντικαθιστώντας στην παραπάνω εξίσωση και εφαρµόζοντας ισχυρή επαγωγή: T(n) 2(c n/2 log( n/2 )) + n cnlog(n/2)+n = cnlogn cnlog2 + n = cnlogn cn + n cnlogn, αν c 1. Ελέγχουµε τις αρχικές συνθήκες: n=1: T(n) cnlogn T(1) cnlog1 = 0, το οποίο αντιτίθεται στη συνθήκη Τ(1) =1. Ο ασυµπτωτικός συµβολισµός απαιτεί να αποδείξουµε T(n) cnlogn, για n n 0, όπου n 0 οποιαδήποτε σταθερά. Θέτοντας n 0 = 2, αποδεικνύεται ότι η βάση της επαγωγής ισχύει για κάθε n n 0 αν c 2: Από αναδροµική σχέση: Τ(2) = 4 Ισχυρισµός: Τ(2) c2log2 2*2 = 4. Ισχύει! ΗΥ240 - Παναγιώτα Φατούρου 45

46 Επίλυση Αναδροµικών Σχέσεων Μέθοδος Εικασίας Παράδειγµα 2: Προσδιορισµός άνω φράγµατος για την αναδροµική σχέση: 2 T ( n) = T ( n / 2 ) + 7 Εικάζουµε ότι η λύση είναι Ο(logn). if n = 1 otherwise Aποδείξτε επαγωγικά ότι T(n) clogn, για κατάλληλη τιµή της σταθεράς c > 0. Παράδειγµα 3: Προσδιορισµός άνω φράγµατος για την αναδροµική σχέση: 1 if n = 1 T ( n) = T ( n / 2 ) + T( n / 2 ) + 1 otherwise Εικάζουµε ότι η λύση είναι Ο(n). Προσπαθούµε να αποδείξουµε ότι T(n) cn, για κάποια σταθερά c > 0. Ωστόσο, αντικαθιστώντας στην παραπάνω εξίσωση και εφαρµόζοντας ισχυρή επαγωγή: T(n) c n/2 + c n/2 + 1 cn+1 > cn, c > 0. εν ισχύει! οκιµάζουµε να ισχυροποιήσουµε την επαγωγική υπόθεση. Αποδεικνύουµε ότι T(n) cn b, όπου b 0 κάποια σταθερά. Άσκηση για το σπίτι! ΗΥ240 - Παναγιώτα Φατούρου 46

47 Επίλυση Αναδροµικών Σχέσεων Μέθοδος Επαναληπτικής Αντικατάστασης Παράδειγµα 1: Προσδιορισµός άνω φράγµατος για την αναδροµική σχέση: 2 if n = 1 T ( n) = T ( n / 2 ) + 7 otherwise T(n) = T( n/2 ) + 7 = (T( n/4 ) + 7) + 7 = T( n/4 ) + 2* 7 = (T( n/8 ) + 7) + 2 * 7 = T( n/8 ) + 3* 7 = = T( n/2 i ) + i*7 Ποτέ σταµατά η επαναληπτική αντικατάσταση; Όταν n/2 i = 1 i logn. Τότε: T(n) T(1) + 7logn = logn = O(logn)! ΗΥ240 - Παναγιώτα Φατούρου 47

48 Επίλυση Αναδροµικών Σχέσεων Μέθοδος Επαναληπτικής Αντικατάστασης Παράδειγµα 2: Προσδιορισµός άνω φράγµατος για την αναδροµική σχέση: 1 if n = 1 T ( n) = 3 T ( n / 4 ) + n otherwise T(n) = 3 * T( n/4 ) + n = 3 * (3*T( n/4 2 ) + n/4 ) + n = 3 2 *T( n/4 2 ) + 3* n/4 + n = 3 2 *(3*T( n/4 3 )+ n/4 2 )+ 3* n/4 + n = 3 3 *T( n/4 3 ) * n/4 2 +3* n/4 + n = 3 i *T( n/4 i ) + n*((3/4) i + (3/4) i (3/4) + 1) 3 i *T( n/4 i ) + 4n Ποτέ σταµατά η επαναληπτική αντικατάσταση; Όταν n/4 i = 1 i log 4 n. Τότε: T(n) 3 i *T(1) + 4n = 3 log 4n + 4n = n log n 4n + n = O(n) ΗΥ240 - Παναγιώτα Φατούρου 48

49 Πειραµατική Ανάλυση Η χρήση των Ο, Ω, Θ µπορεί να οδηγήσει σε λάθος συµπεράσµατα όταν τα Ο, Ω, Θ υποκρύπτουν σταθερές που είναι µεγάλες. Παράδειγµα: Η συνάρτηση n = Θ(n), αλλά ένας αλγόριθµος µε χρονική πολυπλοκότητα 10nlogn θα ήταν προτιµότερος αφού σε όλες τις λογικές εισόδους ο 2ος αλγόριθµος θα συµπεριφερόταν πολύ καλύτερα από τον πρώτο. Οι αλγόριθµοι που έχουν πολυωνυµική χρονική πολυπλοκότητα θεωρούνται αποτελεσµατικοί, ενώ αυτοί που απαιτούν εκθετικό χρόνο εκτέλεσης είναι µηαποτελεσµατικοί. Ωστόσο, ένας αλγόριθµος που απαιτεί χρόνο εκτέλεσης Θ(n 100 ) δεν θεωρείται αποτελεσµατικός! ΗΥ240 - Παναγιώτα Φατούρου 49

50 Πειραµατική Ανάλυση Η ασυµπτωτική ανάλυση: δεν παρέχει πληροφορίες για τους σταθερούς παράγοντες που κρύβονται κάτω από τους συµβολισµούς Ο, Ω και Θ δεν καθορίζει διαχωριστικές γραµµές µεταξύ ασυµπτωτικά αργών αλγορίθµων µε µικρούς σταθερούς παράγοντες και ασυµπτωτικά πιο γρήγορων αλγορίθµων µε µεγάλους σταθερούς παράγοντες εστιάζει κύρια σε εισόδους χειρότερης περίπτωσης, που µπορεί να µην είναι οι πιο αντιπροσωπευτικές για συγκεκριµένα προβλήµατα για πολύ πολύπλοκους αλγορίθµους µπορεί να µην µπορεί να επιτευχθεί. Για όλους αυτούς τους λόγους, είναι χρήσιµο να µπορούµε να µελετάµε αλγορίθµους και µε πειραµατικό τρόπο. ΗΥ240 - Παναγιώτα Φατούρου 50

51 Πειραµατική Ανάλυση - Επιλέγοντας µετρικά που θα µελετηθούν Εκτίµηση του ασυµπτωτικού χρόνου εκτέλεσης ενός αλγόριθµου στη µέση περίπτωση. Σύγκριση δύο ή περισσότερων αλγορίθµων προκειµένου να αποφασιστεί ποιος είναι πιο γρήγορος για κάποιο εύρος τιµών εισόδου [n 0,n 1 ]. Για αλγορίθµους των οποίων η συµπεριφορά εξαρτάται από αριθµητικές παραµέτρους, όπως π.χ. κάποια σταθερά a ή ε, εύρεση των τιµών αυτών των παραµέτρων για τις οποίες επιτυγχάνεται η καλύτερη δυνατή απόδοση. Για αλγορίθµους που αποσκοπούν στην ελαχιστοποίηση ή στη µεγιστοποίηση κάποιας συνάρτησης, µελέτη της απόστασης της εξόδου του αλγορίθµου από τη βέλτιστη έξοδο. ΗΥ240 - Παναγιώτα Φατούρου 51

52 Πειραµατική Ανάλυση Τι είδους µετρήσεις θα πραγµατοποιηθούν Πραγµατικός χρόνος εκτελέσης αλγορίθµου (χρήση gettimeofday() ή άλλων συναρτήσεων που µας παρέχει το σύστηµα) Υπάρχουν πολλοί παράγοντες που µπορούν να επηρεάσουν τις µετρήσεις Υπάρχουν άλλα προγράµµατα που εκτελούνται ταυτόχρονα; Χρησιµοποιεί ο αλγόριθµός την κρυφή µνήµη του συστήµατος αποτελεσµατικά; Είναι αρκετή η µνήµη του συστήµατος για την αποτελεσµατική εκτέλεση του αλγορίθµου;) Μέτρηση πρωταρχικών λειτουργιών που επιτελούνται από τον αλγόριθµο Αναφορές στη µνήµη Συγκρίσεις Αριθµητικές λειτουργίες ΗΥ240 - Παναγιώτα Φατούρου 52

53 Πειραµατική Ανάλυση Παραγωγή εδοµένων Εισόδου που θα χρησιµοποιηθούν για τα πειράµατα Παραγωγή αρκετών δειγµάτων ώστε ο υπολογισµός µέσων τιµών να παρέχει σηµαντικά στατιστικώς δεδοµένα. Παραγωγή δειγµάτων διαφορετικών µεγεθών ώστε να είναι εφικτή η εξαγωγή συµπερασµάτων για διαφορετικά µεγέθη της εισόδου Παραγωγή δεδοµένων αντιπροσωπευτικών εκείνων που ο αλγόριθµος θα συναντήσει στην πράξη. Θέµατα Υλοποίησης Ο χρόνος εκτέλεσης ενός αλγορίθµου εξαρτάται από το υλικό, τη γλώσσα προγραµµατισµού και το µεταφραστή, αλλά και από το πόσο δεινός είναι ο προγραµµατιστής. Κατά τη σύγκριση µέσω πειραµατικής µελέτης δύο αλγορίθµων, ο ίδιος βαθµός βελτιστοποίησης του κώδικα πρέπει να εφαρµοστεί στις υλοποιήσεις και των δύο αλγορίθµων (και οι αλγόριθµοι καλό είναι να έχουν υλοποιηθεί από προγραµµατιστές ανάλογης εµπειρίας). Τα χαρακτηριστικά (πλήθος ΚΜΕ και ταχύτητα αυτών, µέγεθος κύριας και κρυφών µνηµών, ταχύτητα του καναλιού επικοινωνίας µε τη µνήµη) του συστήµατος στο οποίο πραγµατοποιείται το πείραµα θα πρέπει να καταγράφονται λεπτοµερώς. ΗΥ240 - Παναγιώτα Φατούρου 53

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

ΗΥ240: οµές εδοµένων. ιδάσκουσα: Παναγιώτα Φατούρου ΗΥ240 - Παναγιώτα Φατούρου 2 ΗΥ240: οµές εδοµένων ιδάσκουσα: Παναγιώτα Φατούρου Υποχρεωτικό Μάθηµα 2ου έτους Τµήµα Επιστήµης Υπολογιστών Πανεπιστήµιο Κρήτης Ενότητα 1 Εισαγωγή ΗΥ240 - Παναγιώτα Φατούρου 2 Εισαγωγικά Θέµατα Αντικείµενο

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

Ενότητα 1 Εισαγωγή. ΗΥ240: Δοµές Δεδοµένων. Διδάσκουσα: Παναγιώτα Φατούρου

Ενότητα 1 Εισαγωγή. ΗΥ240: Δοµές Δεδοµένων. Διδάσκουσα: Παναγιώτα Φατούρου ΗΥ240: Δοµές Δεδοµένων Διδάσκουσα: Παναγιώτα Φατούρου Υποχρεωτικό Μάθηµα 2ου έτους Τµήµα Επιστήµης Υπολογιστών Πανεπιστήµιο Κρήτης Ενότητα 1 Εισαγωγή ΗΥ240 - Παναγιώτα Φατούρου 2 Εισαγωγικά Θέµατα Αντικείµενο

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

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

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

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

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

οµές εδοµένων 3 ο Εξάµηνο Τµήµα Πανεπιστήµιο Πληροφορικής Ιωαννίνων ΟΜΕΣ Ε ΟΜΕΝΩΝ Τµήµα Πανεπιστήµιο Πληροφορικής Ιωαννίνων ΟΜΕΣ Ε ΟΜΕΝΩΝ ΕΝΟΤΗΤΑ 1 ΕΙΣΑΓΩΓΗ 1 εδοµένα Σύνολο από πληροφορίες που πρέπει να αποθηκευτούν σε έναν υπολογιστή Υπολογιστικό Μοντέλο ένας επεξεργαστής και µεγάλος

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

Τηλ , Fax: , URL:

Τηλ , Fax: , URL: Τµήµα Πανεπιστήµιο Πληροφορικής Ιωαννίνων ΟΜΕΣ Ε ΟΜΕΝΩΝ Παναγιώτα Φατούρου faturu@cs.uoi.gr Σεπτέµβριος, 2005 Τµήµα Πληροφορικής, Πανεπιστήµιο Ιωαννίνων, Τ.Θ. 1186, Γραφείο Α26, Τηλ. +30 26510 98808, Fax:

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

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

Ενότητα 1: Εισαγωγή Ασκήσεις και Λύσεις Ενότητα 1: Εισαγωγή Ασκήσεις και Λύσεις Άσκηση 1 Αποδείξτε τη µεταβατική και τη συµµετρική ιδιότητα του Θ. Λύση Μεταβατική Ιδιότητα (ορισµός): Αν f(n) = Θ(g(n)) και g(n) = Θ(h(n)) τότε f(n)=θ(h(n)). Για

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

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

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

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

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

Εισαγωγή στην Ανάλυση Αλγορίθμων (2-3) Εισαγωγή στην Ανάλυση Αλγορίθμων (2-3) 3.1 Ασυμπτωτικός συμβολισμός (Ι) Οι ορισμοί που ακολουθούν μας επιτρέπουν να επιχειρηματολογούμε με ακρίβεια για την ασυμπτωτική συμπεριφορά. Οι f(n) και g(n) συμβολίζουν

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

Ορισµός. Εστω συναρτήσεις: 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

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

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

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

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

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

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

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

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

Δομές Δεδομένων Ενότητα 2 ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Ενότητα 2: Θέματα Απόδοσης Απόστολος Παπαδόπουλος Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

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

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

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

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

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

1o Φροντιστήριο ΗΥ240 1o Φροντιστήριο ΗΥ240 Άσκηση 1 Αποδείξτε τη μεταβατική και τη συμμετρική ιδιότητα του Θ Μεταβατική Ιδιότητα (ορισμός): Αν f(n) = Θ(g(n)) και g(n) = Θ(h(n)) τότε f(n)=θ(h(n)) Για να ισχύει f(n)= Θ(h(n))

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

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

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

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

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

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

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

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

Δομές Δεδομένων (Data Structures) Δομές Δεδομένων (Data Structures) Ανάλυση - Απόδοση Αλγορίθμων Έλεγχος Αλγορίθμων. Απόδοση Προγραμμάτων. Χωρική/Χρονική Πολυπλοκότητα. Ασυμπτωτικός Συμβολισμός. Παραδείγματα. Αλγόριθμοι: Βασικές Έννοιες

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

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

1 Ανάλυση αλγορίθµων. 2 Συµβολισµοί O, Ω και Θ. 3 Αναδροµικές εξισώσεις Γενικό πλάνο Μαθηµατικά για Πληροφορική 6ο Μάθηµα 1 Ανάλυση αλγορίθµων Ηλίας Κουτσουπιάς, Γιάννης Εµίρης 2 Συµβολισµοί O, Ω και Θ Τµήµα Πληροφορικής και Τηλεπικοινωνιών Πανεπιστήµιο Αθηνών 27/11/2008 3

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

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

Υπολογιστική Πολυπλοκότητα Υπολογιστική Πολυπλοκότητα Υπολογιστική πολυπλοκότητα αλγόριθµου Α: Ποσότητα υπολογιστικών πόρων που απαιτεί Α ως αύξουσα συνάρτηση µεγέθους στιγµιότυπου εισόδου. Χρόνος, µνήµη, επεξεργαστές, επικοινωνία,

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

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

Μαθηµατικά για Πληροφορική Μαθηµατικά για Πληροφορική 6ο Μάθηµα Ηλίας Κουτσουπιάς, Γιάννης Εµίρης Τµήµα Πληροφορικής και Τηλεπικοινωνιών Πανεπιστήµιο Αθηνών 27/11/2008 27/11/2008 1 / 55 Γενικό πλάνο 1 Ανάλυση αλγορίθµων 2 Συµβολισµοί

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

Υπολογιστικό Πρόβληµα

Υπολογιστικό Πρόβληµα Υπολογιστικό Πρόβληµα Μετασχηµατισµός δεδοµένων εισόδου σε δεδοµένα εξόδου. Δοµή δεδοµένων εισόδου (έγκυρο στιγµιότυπο). Δοµή και ιδιότητες δεδοµένων εξόδου (απάντηση ή λύση). Τυπικά: διµελής σχέση στις

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

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

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

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

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

Κεφάλαιο 5 Ανάλυση Αλγορίθμων Κεφάλαιο 5 Ανάλυση Αλγορίθμων 5.1 Επίδοση αλγορίθμων Τα πρωταρχικά ερωτήματα που προκύπτουν είναι: 1. πώς υπολογίζεται ο χρόνος εκτέλεσης ενός αλγορίθμου; 2. πώς μπορούν να συγκριθούν μεταξύ τους οι διάφοροι

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

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

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

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

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

Αλγόριθµοι και Πολυπλοκότητα Αλγόριθµοι και Πολυπλοκότητα Στην ενότητα αυτή θα µελετηθούν τα εξής θέµατα: Πρόβληµα, Στιγµιότυπο, Αλγόριθµος Εργαλεία εκτίµησης πολυπλοκότητας: οι τάξεις Ο(n), Ω(n), Θ(n) Ανάλυση Πολυπλοκότητας Αλγορίθµων

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

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

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

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

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

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

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

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

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

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

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

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

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

Εισαγωγή στους Αλγόριθµους. Αλγόριθµοι. Ιστορικά Στοιχεία. Ο πρώτος Αλγόριθµος. Παραδείγµατα Αλγορίθµων. Τι είναι Αλγόριθµος

Εισαγωγή στους Αλγόριθµους. Αλγόριθµοι. Ιστορικά Στοιχεία. Ο πρώτος Αλγόριθµος. Παραδείγµατα Αλγορίθµων. Τι είναι Αλγόριθµος Εισαγωγή στους Αλγόριθµους Αλγόριθµοι Τι είναι αλγόριθµος; Τι µπορεί να υπολογίσει ένας αλγόριθµος; Πως αξιολογείται ένας αλγόριθµος; Παύλος Εφραιµίδης pefraimi@ee.duth.gr Αλγόριθµοι Εισαγωγικές Έννοιες

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

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

Εισαγωγή στους Αλγόριθμους. Παύλος Εφραιμίδης, Λέκτορας Εισαγωγή στους Αλγόριθμους Παύλος Εφραιμίδης, Λέκτορας http://pericles.ee.duth.gr 1 Περιεχόμενα Μαθήματος Εισαγωγή στου Αλγόριθμους Πολυπλοκότητα Αλγορίθμων Ασυμπτωτική Ανάλυση Θεωρία Γράφων Κλάσεις Πολυπλοκότητας

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

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

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

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

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

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

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

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

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

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

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

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

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

Ορθότητα Χωρική αποδοτικότητα. Βελτιστότητα. Θεωρητική ανάλυση Εμπειρική ανάλυση. Αλγόριθμοι - Τμήμα Πληροφορικής ΑΠΘ -4ο εξάμηνο 1

Ορθότητα Χωρική αποδοτικότητα. Βελτιστότητα. Θεωρητική ανάλυση Εμπειρική ανάλυση. Αλγόριθμοι - Τμήμα Πληροφορικής ΑΠΘ -4ο εξάμηνο 1 Ανάλυση Αλγορίθμων Θέματα Θέματα: Ορθότητα Χρονική αποδοτικότητα Χωρική αποδοτικότητα Βελτιστότητα Προσεγγίσεις: Θεωρητική ανάλυση Εμπειρική ανάλυση Αλγόριθμοι - Τμήμα Πληροφορικής ΑΠΘ -4ο εξάμηνο 1 Θεωρητική

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

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

Δομές Δεδομένων και Αλγόριθμοι Δομές Δεδομένων και Αλγόριθμοι Χρήστος Γκόγκος ΤΕΙ Ηπείρου, Τμήμα Μηχανικών Πληροφορικής ΤΕ Χειμερινό Εξάμηνο 2014-2015 (Παρουσίαση 6) 1 / 20 Ρυθμοί αύξησης Γραμμικός ρυθμός αύξησης: n, 2n, Πολυωνυμικός

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Δομές Δεδομένων & Αλγόριθμοι Απόδοση Αλγορίθμων Πληροφορικής 1 Απόδοση Αλγορίθμων Συνήθως υπάρχουν πολλοί τρόποι (αλγόριθμοι) για την επίλυση ενός προβλήματος. Πώς επιλέγουμε μεταξύ αυτών; Πρέπει να ικανοποιηθούν δύο (αντικρουόμενοι)

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

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

Αλγόριθμοι και Πολυπλοκότητα Αλγόριθμοι και Πολυπλοκότητα Διαίρει και Βασίλευε Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Διαίρει και Βασίλευε Divide and Conquer Η τεχνική διαίρει και βασίλευε αναφέρεται

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

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

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

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

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

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

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

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

Εισαγωγικές Έννοιες. ημήτρης Φωτάκης. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών. Εθνικό Μετσόβιο Πολυτεχνείο Εισαγωγικές Έννοιες ημήτρης Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

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

Αλγόριθμοι και πολυπλοκότητα Ανάλυση αλγορίθμων

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Δομές Δεδομένων και Αλγόριθμοι Δομές Δεδομένων και Αλγόριθμοι Χρήστος Γκόγκος ΤΕΙ Ηπείρου, Τμήμα Μηχανικών Πληροφορικής ΤΕ Χειμερινό Εξάμηνο 2014-2015 (Παρουσίαση 5) 1 / 17 Απόδοση προγραμμάτων Συχνά χρειάζεται να εκτιμηθεί η απόδοση

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

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

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

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

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

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

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

Ανω Φράγµα στην Τάξη των Συναρτήσεων. Ρυθµός Αύξησης (Τάξη) των Συναρτήσεων. Παράδειγµα (1/2) O( g(n) ) είναι σύνολο συναρτήσεων:

Ανω Φράγµα στην Τάξη των Συναρτήσεων. Ρυθµός Αύξησης (Τάξη) των Συναρτήσεων. Παράδειγµα (1/2) O( g(n) ) είναι σύνολο συναρτήσεων: Ανω Φράγµα στην Τάξη των Συναρτήσεων Ορισµός. Εστω συναρτήσεις: f : N R και g : N R Ρυθµός Αύξησης (Τάξη) των Συναρτήσεων Ορέστης Τελέλης η (τάξη της) f(n) είναι O( g(n) ) αν υπάρχουν σταθερές C και n

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

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

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

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

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

Διακριτά Μαθηματικά. Γιάννης Εμίρης. Τμήμα Πληροφορικής & Τηλεπικοινωνιών ΕΚΠΑ. Οκτώβριος ΔιακριτάΜαθηματικά Γιάννης Εμίρης http://eclass.uoa.gr/ Τμήμα Πληροφορικής & Τηλεπικοινωνιών ΕΚΠΑ Οκτώβριος 2016 Διακριτά Μαθηματικά Αλγόριθμοι Ρυθμόςαύξησηςσυναρτήσεων[Rosen 3.2] Διακριτά Μαθηματικά Ορισμοί

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

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

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

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

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

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

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

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

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

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

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

Κατ οίκον Εργασία 1 Σκελετοί Λύσεων ΕΠΛ Δομές Δεδομένων και Αλγόριθμοι Σεπτέμβριος 008 Κατ οίκον Εργασία Σκελετοί Λύσεων Άσκηση Παρατηρούμε ότι ο χρόνος εκτέλεσης μέσης περίπτωσης της κάθε εντολής if ξεχωριστά: if (c mod 0) for (k ; k

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

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

5.1. Προσδοκώμενα αποτελέσματα 5.1. Προσδοκώμενα αποτελέσματα Όταν θα έχεις ολοκληρώσει τη μελέτη αυτού του κεφαλαίου θα έχεις κατανοήσει τις τεχνικές ανάλυσης των αλγορίθμων, θα μπορείς να μετράς την επίδοση των αλγορίθμων με βάση

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

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δοµές Δεδοµένων

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δοµές Δεδοµένων ΟΝΟΜΑΤΕΠΩΝΥΜΟ: ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ AM: Δοµές Δεδοµένων Εξεταστική Ιανουαρίου 2014 Διδάσκων : Ευάγγελος Μαρκάκης 20.01.2014 ΥΠΟΓΡΑΦΗ ΕΠΟΠΤΗ: Διάρκεια εξέτασης : 2 ώρες και

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

Δοµές Δεδοµένων και Αλγόριθµοι - Εισαγωγή

Δοµές Δεδοµένων και Αλγόριθµοι - Εισαγωγή Δοµές Δεδοµένων και Αλγόριθµοι - Εισαγωγή Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Εισαγωγή στις έννοιες Αλγόριθµοι και Πολυπλοκότητα, Οργάνωση Δεδοµένων και Δοµές Δεδοµένων Χρήσιµοι µαθηµατικοί

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

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

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 23: οµές εδοµένων και Αλγόριθµοι Ενδιάµεση Εξέταση Ηµεροµηνία : ευτέρα, 3 Νοεµβρίου 2008 ιάρκεια : 2.00-4.00 ιδάσκουσα : Άννα Φιλίππου Ονοµατεπώνυµο: ΣΚΕΛΕΤΟΙ

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

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

Κεφάλαιο 2 Ανάλυση Αλγορίθμων Κεφάλαιο Ανάλυση Αλγορίθμων Περιεχόμενα.1 Εισαγωγή... 0. Εμπειρική και Θεωρητική Ανάλυση Αλγορίθμων.....1 Εμπειρική Πολυπλοκότητα..... Θεωρητική Πολυπλοκότητα... 3.3 Ανάλυση Χειρότερης και Αναμενόμενης

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

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

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

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

Δοµές Δεδοµένων. 5η Διάλεξη Λίστες και αρχές ανάλυσης αλγορίθµων. Ε. Μαρκάκης

Δοµές Δεδοµένων. 5η Διάλεξη Λίστες και αρχές ανάλυσης αλγορίθµων. Ε. Μαρκάκης Δοµές Δεδοµένων 5η Διάλεξη Λίστες και αρχές ανάλυσης αλγορίθµων Ε. Μαρκάκης Περίληψη Διπλά συνδεδεµένες λίστες Αναπαράσταση γράφων µε λίστες Εµπειρική ανάλυση αλγορίθµων Μαθηµατική ανάλυση αλγορίθµων Αύξηση

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

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

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

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

Εισαγωγή στην Ανάλυση Αλγορίθμων (1) Διαφάνειες του Γ. Χ. Στεφανίδη

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

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

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

Αλγόριθµοι και Πολυπλοκότητα Αλγόριθµοι και Πολυπλοκότητα Ενότητα 1 Εισαγωγικές έννοιες Ν. Μ. Μισυρλής Τµήµα Πληροφορικής και Τηλεπικοινωνιών, Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 1 1 / 57 Περιεχόµενα 1.

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

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

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

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

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

Υπολογιστικά & Διακριτά Μαθηματικά Υπολογιστικά & Διακριτά Μαθηματικά Ενότητα 5: Αναδρομικές σχέσεις - Υπολογισμός Αθροισμάτων Στεφανίδης Γεώργιος Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για

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

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

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

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

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

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

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

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

Αναδρομή Ανάλυση Αλγορίθμων Αναδρομή Ανάλυση Αλγορίθμων Παράδειγμα: Υπολογισμός του παραγοντικού Ορισμός του n! n! = n x (n - 1) x x 2 x 1 Ο παραπάνω ορισμός μπορεί να γραφεί ως n! = 1 αν n = 0 n x (n -1)! αλλιώς Παράδειγμα (συνέχ).

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

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

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

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

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

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

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

Quicksort. Πρόβλημα Ταξινόμησης. Μέθοδοι Ταξινόμησης. Συγκριτικοί Αλγόριθμοι

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

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

Θεωρητικό Μέρος. int rec(int n) { int n1, n2; if (n <= 5) then return n; else { n1 = rec(n-5); n2 = rec(n-3); return (n1+n2); } }

Θεωρητικό Μέρος. int rec(int n) { int n1, n2; if (n <= 5) then return n; else { n1 = rec(n-5); n2 = rec(n-3); return (n1+n2); } } Πανεπιστήµιο Ιωαννίνων, Τµήµα Πληροφορικής 2 Νοεµβρίου 2005 Η/Υ 432: οµές εδοµένων Χειµερινό Εξάµηνο Ακαδηµαϊκού Έτους 2005-2006 Παναγιώτα Φατούρου Ηµεροµηνία Παράδοσης 1 ο Σετ Ασκήσεων Θεωρητικό Μέρος:

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

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

Quicksort. ημήτρης Φωτάκης. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών. Εθνικό Μετσόβιο Πολυτεχνείο Quicksort ημήτρης Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Quicksort [Hoare, 62] Στοιχείο διαχωρισμού (pivot), π.χ. πρώτο, τυχαίο, Αναδιάταξη και διαίρεση

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

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

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

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

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

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ Ασκησεις - Φυλλαδιο 3 ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ Ασκησεις - Φυλλαδιο 3 ιδασκοντες: Α. Μπεληγιάννης - Σ. Παπαδάκης Ιστοσελιδα Μαθηµατος : http://users.uoi.gr/abeligia/numbertheory/nt.html Τετάρτη 13 Μαρτίου 2013 Ασκηση 1. Αφού ϐρείτε την

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

Θεωρήµατα Ιεραρχίας Ειδικά Θέµατα Υπολογισµού και Πολυπλοκότητας, Μάθηµα Βασικής Επιλογής Εαρινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων

Θεωρήµατα Ιεραρχίας Ειδικά Θέµατα Υπολογισµού και Πολυπλοκότητας, Μάθηµα Βασικής Επιλογής Εαρινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων Θεωρήµατα Ιεραρχίας Ειδικά Θέµατα Υπολογισµού και Πολυπλοκότητας, Μάθηµα Βασικής Επιλογής Εαρινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων Απόστολος Φίλιππας Τµήµα Μηχανικών Η/Υ και Πληροφορικής 19 Μαΐου,

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

Μαθηµατική Επαγωγή. Ορέστης Τελέλης. Τµήµα Ψηφιακών Συστηµάτων, Πανεπιστήµιο Πειραιώς

Μαθηµατική Επαγωγή. Ορέστης Τελέλης. Τµήµα Ψηφιακών Συστηµάτων, Πανεπιστήµιο Πειραιώς Μαθηµατική Επαγωγή Ορέστης Τελέλης telelis@unipi.gr Τµήµα Ψηφιακών Συστηµάτων, Πανεπιστήµιο Πειραιώς Ο. Τελέλης Πανεπιστήµιο Πειραιώς Επαγωγή 1 / 17 Υπενθύµιση: Ακολουθίες Ακολουθία είναι συνάρτηση από

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

ΠΛΗ111. Ανοιξη Μάθηµα 2 ο. Αλγόριθµοι και Αφηρηµένοι Τύποι εδοµένων. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης

ΠΛΗ111. Ανοιξη Μάθηµα 2 ο. Αλγόριθµοι και Αφηρηµένοι Τύποι εδοµένων. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης ΠΛΗ111 οµηµένος Προγραµµατισµός Ανοιξη 2005 Μάθηµα 2 ο Αλγόριθµοι και Αφηρηµένοι Τύποι εδοµένων Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης Αλγόριθµοι Ορισµός Παράδειγµα Ασυµπτωτική

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

KΕΦΑΛΑΙΟ 1 ΧΡΗΣΙΜΕΣ ΜΑΘΗΜΑΤΙΚΕΣ ΕΝΝΟΙΕΣ. { 1,2,3,..., n,...

KΕΦΑΛΑΙΟ 1 ΧΡΗΣΙΜΕΣ ΜΑΘΗΜΑΤΙΚΕΣ ΕΝΝΟΙΕΣ. { 1,2,3,..., n,... KΕΦΑΛΑΙΟ ΧΡΗΣΙΜΕΣ ΜΑΘΗΜΑΤΙΚΕΣ ΕΝΝΟΙΕΣ Βασικές έννοιες διαιρετότητας Θα συµβολίζουµε µε, τα σύνολα των φυσικών αριθµών και των ακεραίων αντιστοίχως: {,,3,,, } { 0,,,,, } = = ± ± ± Ορισµός Ένας φυσικός αριθµός

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

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

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Εισαγωγή. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Δομές Δεδομένων Εισαγωγή Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Βιβλιογραφία Robert Sedgewick, Αλγόριθμοι σε C, Μέρη 1-4 (Θεμελιώδεις Έννοιες, Δομές Δεδομένων, Ταξινόμηση,

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

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

Quicksort [Hoare, 62] Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Quicksort 1 Quicksort [Hoare, 62] Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Quicksort 1 Quicksort [Hoare, 62] Στοιχείο διαχωρισµού (pivot), π.χ. πρώτο, τυχαίο, Αναδιάταξη και διαίρεση εισόδου σε δύο υπο-ακολουθίες:

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

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

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

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

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δοµές Δεδοµένων

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δοµές Δεδοµένων ΟΝΟΜΑΤΕΠΩΝΥΜΟ: ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ AM: Δοµές Δεδοµένων Πτυχιακή Εξεταστική Ιούλιος 2014 Διδάσκων : Ευάγγελος Μαρκάκης 09.07.2014 ΥΠΟΓΡΑΦΗ ΕΠΟΠΤΗ: Διάρκεια εξέτασης : 2 ώρες

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

Σύνοψη Προηγούμενου. Πίνακες (Arrays) Πίνακες (Arrays): Βασικές Λειτουργίες. Πίνακες (Arrays) Ορέστης Τελέλης

Σύνοψη Προηγούμενου. Πίνακες (Arrays) Πίνακες (Arrays): Βασικές Λειτουργίες. Πίνακες (Arrays) Ορέστης Τελέλης Σύνοψη Προηγούμενου Πίνακες (Arrays Ορέστης Τελέλης telelis@unipi.gr Τμήμα Ψηφιακών Συστημάτων, Πανεπιστήμιο Πειραιώς Διαδικαστικά θέματα. Aντικείμενο Μαθήματος. Aντικείμενα, Κλάσεις, Μέθοδοι, Μεταβλητές.

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

ΓΡΑΜΜΙΚΗ ΑΛΓΕΒΡΑ Ι (ΑΡΤΙΟΙ) Λυσεις Ασκησεων - Φυλλαδιο 2

ΓΡΑΜΜΙΚΗ ΑΛΓΕΒΡΑ Ι (ΑΡΤΙΟΙ) Λυσεις Ασκησεων - Φυλλαδιο 2 ΓΡΑΜΜΙΚΗ ΑΛΓΕΒΡΑ Ι Τµηµα Β (ΑΡΤΙΟΙ) Λυσεις Ασκησεων - Φυλλαδιο ιδασκων: Α Μπεληγιάννης Ιστοσελιδα Μαθηµατος : http://usersuoigr/abeligia/linearalgebrai/lai8/lai8html Παρασκευή 6 Οκτωβρίου 8 Υπενθυµίζουµε

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

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

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

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

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

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

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