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

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

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

Transcript

1 Απόδοση Αλγορίθμων Πληροφορικής 1

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

3 Μέτρηση Απόδοσης 1. Εμπειρική σύγκριση (τρέξιμο προγραμμάτων) 2. Ασυμπτωτική ανάλυση αλγορίθμων Παράγοντες που επηρεάζουν το χρόνο εκτέλεσης ενός προγράμματος: Για τους περισσότερους αλγορίθμους, ο χρόνος τρεξίματος εξαρτάται από το μέγεθος της εισόδου Ο χρόνος τρεξίματος εκφράζεται ως f(n) για κάποια συνάρτηση f πάνω στο μέγεθος n της εισόδου Πληροφορικής 3

4 Χρόνος εκτέλεσης Οι περισότεροι αλγόριθμοι μετατρέπουν αντικείμενα εισόδου σε αντικείμενα εξόδου. Ο χρόνος εκτέλεσης ενός αλγόριθμου συνήθως μεγαλώνει με το μέγεθος των δεδομένων εισόδου. Ο μέσος χρόνος είναι δύσκολο να υπολογιστεί. Εστιάζουμε στο χρόνο της χειρότερης περίπτωσης. Ευκολότερη ανάλυση Σημαντικός για εφαρμογές όπως παιχνίδια, ρομποτική Running Time best case average case worst case Input Size Πληροφορικής 4

5 Πειραματική Μελέτη Γράφουμε ένα πρόγραμμα που υλοποιεί τον αλγόριθμο Εκτελούμε το πρόγραμμα με εισόδους διαφορετικού μεγέθους και είδους Χρησιμοποιούμε μια συνάρτηση σαν την clock(), για να πάρουμε ακριβείς μετρήσεις του χρόνου εκτέλεσης Φτιάχνουμε το γράφημα με τα αποτελέσματα 0 Time (ms) Input Size Πληροφορικής 5

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

7 Θεωρητική ανάλυση Χρησιμοποιεί υψηλού επιπέδου περιγραφή του αλγορίθμου Ο χρόνος εκτέλεσης χαρακτηρίζεται ως συνάρτηση του μεγέθους n των εισόδων Υπολογίζονται όλες οι δυνατές εισόδοι Επιτρέπει την αξιολόγηση του αλγορίθμου ανεξάρτητα απο υλικό και λογισμικό Πληροφορικής 7

8 Ψευδοκώδικας Υψηλού επιπέδου περιγραφή του αλγορίθμου Πιο δομημένος από μια κοινή περιγραφή Λιγότερο λεπτομερής απο τον κώδικα Προτιμάται για την περιγραφή αλγορίθμων Κρύβει θέματα σχεδιασμού του προγράμματος Εύρεση μέγιστου στοιχείου σε πίνακα Algorithm arraymax(a, n) Input array A of n integers Output maximum element of A currentmax A[0] for i 1 to n 1 do if A[i] currentmax then currentmax A[i] return currentmax Πληροφορικής 8

9 Λεπτομέρειες Ψευδοκώδικα Έλεγχος ροής if then [else ] while do repeat until for do Οι αγκύλες αντικαθιστούνται με εσοχές κειμένου Δήλωση μεθόδων Algorithm method (arg [, arg ]) Input Output Κάλεσμα συνάρτησης var.method (arg [, arg ]) Επιστροφή τιμής return expression Expressions Ανάθεση (όπως στη C++) Ισότητα (όπως στη C++) n 2 Δυνάμεις και άλλες μαθηματικές εκφράσεις, επιτρέπονται Πληροφορικής 9

10 Βασικές λειτουργίες Βασικοί υπολογισμοί που γίνονται απο ένα αλγόριθμο Αναγνωρίσιμοι σε ψευδοκώδικα Ανεξάρτητο απο γλώσσα προγραμματισμού Ακριβής ορισμός δεν είναι απαραίτητος Υποθέτουμε ότι διαρκεί σταθερό χρόνο στο RAM μοντέλο Παραδείγματα: Υπολογισμός μιας έκφρασης Ανάθεση μίας τιμής σε μεταβλητή Κάλεσμα μιας συνάρτησης Επιστροφή από μια συνάρτηση Πληροφορικής 10

11 Υπολογισμός κόστους αλγορίθμου σε κάθε εντολή ανάθεσης τιμής ή δήλωσης θα χρεώνουμε σταθερό χρόνο οι βρόχοι for και while θα χρεώνονται το πλήθος των επαναλήψεων επί το πλήθος των εντολών που εκτελούνται σε κάθε επανάληψη Συχνά θα επικεντρωνόμαστε στις κυρίαρχες πράξεις, δηλαδή αυτές που παίζουν καταλυτικό ρόλο στη συμπεριφορά του αλγορίθμου: π.χ. στους αλγορίθμους ταξινόμησης οι κυρίαρχες πράξεις είναι οι συγκρίσεις και οι ανταλλαγές στοιχείων μεταξύ δύο θέσεων του πίνακα εισόδου Πληροφορικής 11

12 Μετρώντας βασικές λειτουργίες Παρατηρώντας τον ψευδοκώδικα, μπορούμε να βρούμε τον αριθμό των βασικών λειτουργιών ενός αλγορίθμου, ως συνάρτηση του μεγέθους εισόδου Algorithm arraymax(a, n) # λειτουργίες currentmax A[0] 2 for i 1 to n 1 do 2 n if A[i] currentmax then 2(n 1) currentmax A[i] 2(n 1) { increment counter i } 2(n 1) return currentmax 1 Total 7n 1 Πληροφορικής 12

13 Εκτιμώντας το χρόνο εκτέλεσης Ο αλγόριθμος arraymax εκτελεί 7n 1 βασικές λειτουργίες στη χειρότερη περίπτωση. Έστω: a = Ο χρόνος της γρηγορότερης βασικής λειτουργίας b = Ο χρόνος της αργότερης βασικής λειτουργίας Έστω T(n) είναι ο χρόνος της χειρότερης περίπτωσης της arraymax. Τότε a (7n 1) T(n) b(7n 1) Άρα ο χρόνος εκτέλεσης T(n) φράσεται από δύο γραμμικές συναρτήσεις Πληροφορικής 13

14 Παράδειγμα ανάλυσης Algorithm selectionsort(a) Input: Πίνακας Α n αριθμών Output: Διατεταγμένος πίνακας κόστος #εκτελέσεων 1. for (i=0;i<n;i++) { c 1 n+1 2. min=i; c 2 n 3. for (j=i+1;j<=n;j++) c 3 4. if (a[j]<a[min]) min=j; c 4 5. temp=a[i]; c 5 j n 6. a[i]=a[min]; c 6 n 7. a[min]=temp; c 7 n 8. } n j 1 n 1 j j Πληροφορικής 14

15 Πληροφορικής 15 Συνολικός χρόνος αλγορίθμου: ένας αλγόριθμος είναι γρηγορότερος από έναν άλλο αν ένας αλγόριθμος είναι ασυμπτωτικά γρηγορότερος από έναν άλλο αν c n c c c c c c c n c c n T ) ( ) ( ) ( n n T n T ), ( ) 1( 2 0 ) ( ) ( lim 2 1 n T n T n Εκτιμώντας το χρόνο εκτέλεσης

16 Ρυθμός Αύξησης του χρόνου εκτέλεσης Αλλάζοντας το hardware/software Επιδρά στο T(n) με ένα σταθερό παράγοντα, αλλά Δεν αλλάζει τον ρυθμό αύξησης του T(n) Ο γραμμικός ρυθμός ανάπτυξης του T(n) είναι εσωτερικό χαρακτηριστικό του arraymax Πληροφορικής 16

17 Ρυθμοί Ανάπτυξης Ρυθμοί ανάπτυξης συναρτήσεων: Γραμμικός n Τετραγωνικός n 2 Κυβικός n 3 Σε ένα log-log διάγραμμα, η κλίση της γραμμής δείχνει το ρυθμό ανάπτυξης της συνάρτησης T (n ) 1E+30 1E+28 1E+26 1E+24 1E+22 1E+20 1E+18 1E+16 1E+14 1E+12 1E+10 1E+8 1E+6 1E+4 1E+2 1E+0 Cubic Quadratic Linear 1E+0 1E+2 1E+4 1E+6 1E+8 1E+10 n Πληροφορικής 17

18 Σταθεροί παράγοντες Ο ρυθμός αύξησης δεν επηρεάζεται από Σταθερούς παράγοντες, ή Μικρότερου βαθμού παράγοντες Παραδείγματα 10 2 n 10 5 είναι γραμμική συνάρτηση 10 5 n n είναι τετραγωνική συνάρτηση T (n ) 1E+26 1E+24 1E+22 1E+20 1E+18 1E+16 1E+14 1E+12 1E+10 1E+8 1E+6 1E+4 1E+2 1E+0 Quadratic Quadratic Linear Linear 1E+0 1E+2 1E+4 1E+6 1E+8 1E+10 n Πληροφορικής 18

19 Παραδείγματα Ρυθμού Αύξησης Παράδειγμα 1 (εύρεση του μέγιστου στοιχείου ενός πίνακα) int largest(int array[], int n) { int currlarge = 0; for (int i=1; i<n; i++) // Για κάθε val if (array[currlarge] < array[i]) currlarge = i; // αποθήκευση της θέσης return currlarge; // επιστροφή μεγαλύτερου } Παράδειγμα 2 ( χαζός υπολογισμός της έκφρασης n(n-1)) sum = 0; for (i=1; i<=n; i++) for (j=1; j<n; j++) sum++; } Πληροφορικής 19

20 Γραφική Αναπαράσταση Ρυθμού Αύξησης Πληροφορικής 20

21 Καλύτερη, Χειρότερη, Μέση Περίπτωση Διαφορετικές είσοδοι του ίδιου μεγέθους συνήθως απαιτούν διαφορετικό χρόνο τρεξίματος Παράδειγμα: Σειριακή αναζήτηση ενός στοιχείου (του K) σε έναν πίνακα n ακεραίων: Ξεκινάμε από το πρώτο στοιχείο του πίνακα και εξετάζουμε στη σειρά κάθε στοιχείο, μέχρι να βρούμε το K. Ποια είναι η καλύτερη / χειρότερη / μέση περίπτωση; Αν και ο μέσος χρόνος δείχνει να είναι το πιο δίκαιο μέτρο, μπορεί να είναι δύσκολο να υπολογιστεί Πληροφορικής 21

22 Ταχύτερος Υπολογιστής ή Ταχύτερος Αλγόριθμος; Τι συμβαίνει όταν αγοράζουμε έναν υπολογιστή 10 φορές ταχύτερο; n (n ): το μέγεθος εισόδου που μπορούμε να επεξεργαστούμε σε 1 ώρα με τον αργό (ταχύ) υπολογιστή, χρόνος που αντιστοιχεί σε έστω 10,000 (100,000) πράξεις T(n) n n Αλλαγή n /n 10n 1,000 10,000 n = 10n n 500 5,000 n = 10n n log n 250 1, n < n < 10n n n = 10n n n = n Πληροφορικής 22

23 Ο() Σημειογραφία Έστω οι συναρτήσεις f(n) και g(n), λέμε ότι f(n) είναι O(g(n)) αν υπάρχουν θετικές σταθερές c και n 0 έτσι ώστε f(n) cg(n) για n n 0 Παράδειγμα: 2n 10 είναι O(n) 2n 10 cn (c 2) n 10 n 10 (c 2) Για c 3 και n n 2n+10 n n Πληροφορικής 23

24 Ο() Παράδειγμα Παράδειγμα: η συνάρτηση n 2 δεν είναι O(n) n 2 cn n c Η παραπάνω ανίσωση δεν μπορεί να ικανοποιηθεί διότι το c πρέπει να είναι σταθερά n^2 100n 10n n n Πληροφορικής 24

25 Ασυμπτωτική Ανάλυση: Συμβολισμός Όμικρον Κεφαλαίο (Ο) Ορισμός: f(n) = O(g(n) αν και μόνο αν υπάρχουν θετικές σταθερές c και n 0 τέτοιες ώστε f(n) cg(n) για όλα τα n n 0 Παράδειγμα: Ο αλγόριθμος... είναι O(n 2 ) [καλύτερης, μέσης, χειρότερης] περίπτωσης Ερμηνεία: Για όλα τα αρκετά μεγάλα σύνολα δεδομένων (δηλαδή n n 0 ), ο αλγόριθμος πάντα τερματίζει σε λιγότερα από cg(n) βήματα στην [καλύτερη, μέση, χειρότερη] περίπτωση Αποτελεί άνω όριο κόστους Πληροφορικής 25

26 Συμβολισμός Όμικρον Κεφαλαίο (Ο) (συν.) Συνηθίζεται σε μία έκφραση κεφαλαίου «Ο» να διατηρούμε μόνο τον πιο σημαντικό όρο. Έτσι, αντί για Ο(n 2 +nlogn+n) γράφουμε απλά O(n 2 ). Ο συμβολισμός Ο δηλώνει ένα άνω όριο. Παράδειγμα: Εάν f(n) = 3n 2 τότε η f(n) είναι O(n 2 ). Επιθυμούμε όσο το δυνατό στενότερα όρια: Παρόλοπουισχύειότιησυνάρτησηf(n) = 3n 2 είναι O(n 3 ), προτιμούμε O(n 2 ) Πληροφορικής 26

27 Παραδείγματα Χρήσης του Ο Παράδειγμα 1: Εύρεση της τιμής X σε έναν πίνακα (μέσο κόστος) f(n) = c s n/2. Για όλα τα n, c s n/2 c s n. Επομένως, f(n) είναι O(n) για n 0 =1 και c=c s Παράδειγμα 2: f(n) = c 1 n 2 + c 2 n στη μέση περίπτωση. c 1 n 2 + c 2 n c 1 n 2 + c 2 n 2 (c 1 + c 2 )n 2 για όλα τα n Άρα f(n) cn 2 για c = c 1 + c 2 και n 0 = 1 Επομένως, f(n) είναι O(n 2 ) εξ ορισμού Παράδειγμα 3: f(n) = c. Λέμε ότι είναι O(1) Πληροφορικής 27

28 Περισσότερα Ο() Παραδείγματα 7n-2 7n-2 είναι O(n) Θέλουμε c > 0 και n 0 1 έτσι ώστε 7n-2 c n για n n 0 Αυτό ισχύει για c = 7 και n 0 = 1 3n n n n είναι O(n 3 ) Θέλουμε c > 0 και n 0 1 έτσι ώστε 3n n c n 3 για n n 0 Αυτό ισχύει για c = 4 και n 0 = 21 3 log n + log log n 3 log n + log log n είναι O(log n) Θέλουμε c > 0 και n 0 1 έτσι ώστε 3 log n + log log n c log n για n n 0 Αυτό ισχύει για c = 4 και n 0 = 2 Πληροφορικής 28

29 Ο() και ρυθμός ανάπτυξης Η σημειογραφία Ο() δίνει ένα πάνω φράγμα του ρυθμού ανάπτυξης μιας συνάρτησης Η δήλωση f(n) είναι O(g(n)) σημαίνει ότι ο ρυθμός ανάπτυξης της f(n) δεν είναι μεγαλύτερος της g(n) Μπορούμε να χρησιμοποιήσουμε τη σημειογραφία Ο() για να κατηγοριοποιήσουμε συναρτήσεις με βάση τον ρυθμό ανάπτυξής τους g(n) μεγαλύτερη f(n) μεγαλύτερη ίδιες f(n) είναι O(g(n)) Ναι Οχι Ναι g(n) είναι O(f(n)) Οχι Ναι Ναι Πληροφορικής 29

30 Ασυμπτωτική Ανάλυση Αλγορίθμων Η ασυμπτωτική ανάλυση ενός αλγορίθμου ορίζει το χρόνο εκτέλεσης σε σημειογραφία Ο() Για να κάνουμε ασυμπτωτική ανάλυση Βρίσκουμε τον αριθμό βασικών λειτουργιών που εκτελούνται στη χειρότερη περίπτωση, ως συνάρτηση του μεγέθους εισόδου Εκφράζουμε τη συνάρτηση σε Ο() σημειογραφία Παράδειγμα: Βρίσκουμε ότι ο αλγόριθμος arraymax εκτελεί το πολύ 7n 1 βασικές λειτουργίες Λέμε ότι ο αλγόριθμος arraymax τρέχει σε O(n) χρόνο Λόγω του ότι οι σταθερές και οι μικρότερου βαθμού παράγοντες θα πεταχτούν αργότερα, μπορούμε να τους αγνοήσουμε όταν μετράμε βασικές λειτουργίες Πληροφορικής 30

31 Ο() κανόνες Εάν η f(n) είναι πολυώνυμο βαθμού d, τότε f(n) είναι O(n d ), i.e., 1. Διώχνουμε τους μικρότερου βαθμού παράγοντες 2. Διώχνουμε τις σταθερές Χρησιμοποιούμε τη μικρότερη τάξη συναρτήσεων Λέμε 2n είναι O(n) αντί 2n είναι O(2n) Χρησιμοποιούμε την πιο απλή έκφραση της τάξης Λέμε 3n 5 είναι O(n) αντί 3n 5 είναι O(3n) Πληροφορικής 31

32 Μια Συνηθισμένη Παρεξήγηση Η καλύτερη περίπτωση για τον αλγόριθμό μου είναι n=1 επειδή αυτό είναι το γρηγορότερο. ΛΑΘΟΣ! Το Ο αναφέρεται σε ένα αυξανόμενο ρυθμό (rate) καθώς το n τείνει στο. Η καλύτερη περίπτωση ορίζεται ως: ποια είσοδος μεγέθους n είναι φθηνότερη από όλες τις εισόδους μεγέθους n. Πληροφορικής 32

33 Συμβολισμός Ωμέγα Κεφαλαίο (Ω) Ορισμός: f(n) = Ω(g(n) αν και μόνο αν υπάρχουν θετικές σταθερές c και n 0 τέτοιες ώστε f(n) cg(n) για όλα τα n n 0 Παράδειγμα: Ο αλγόριθμος... είναι Ω(n 2 ) [καλύτερης, μέσης, χειρότερης] περίπτωσης Ερμηνεία: Για όλα τα αρκετά μεγάλα σύνολα δεδομένων (δηλαδή n n 0 ), ο αλγόριθμος πάντα τερματίζει σε περισσότερα από cg(n) βήματα στην [καλύτερη, μέση, χειρότερη] περίπτωση Αποτελεί κάτω όριο κόστους Πληροφορικής 33

34 Παράδειγμα Χρήσης του Ω f(n) = c 1 n 2 + c 2 n c 1 n 2 + c 2 n c 1 n 2 για όλα τα n Άρα f(n) cn 2 για c = c 1 και n 0 = 1. Επομένως, η f(n) είναι (n 2 ) εξ ορισμού. Θέλουμε το μεγαλύτερο κάτω όριο. Πληροφορικής 34

35 Συμβολισμός Θήτα Κεφαλαίο (Θ) Όταν τα Ο και ταυτιστούν, το δηλώνουμε αυτό με χρήση του συμβολισμού. Ορισμός: f(n) = Θ(g(n) αν και μόνο αν υπάρχουν θετικές σταθερές c 1, c 2 και n 0 τέτοιες ώστε c 1 g(n) f(n) c 2 g(n) για όλα τα n n 0 Παρατήρηση: Ένας αλγόριθμος λέμε ότι είναι Θ(g(n) εάν είναι ταυτόχρονα Ο(g(n) και Ω(g(n) Πληροφορικής 35

36 (Ακόμη) μια Συνηθισμένη Παρεξήγηση Μπερδεύουμε τη χειρότερη περίπτωση με το άνω όριο Το άνω όριο αναφέρεται σε ένα αυξανόμενο ρυθμό Η χειρότερη περίπτωση αναφέρεται στη χειρότερη είσοδο ανάμεσα στις πιθανές εισόδους ενός δοθέντος μεγέθους Πληροφορικής 36

37 Κανόνες Απλοποίησης 1. Εάν f(n) = O(g(n)) και g(n) = O(h(n)), τότε f(n) = O(h(n)) 2. Εάν f(n) = O(kg(n)) για σταθερά k > 0, τότε f(n) = O(g(n)) 3. Εάν f 1 (n) = O(g 1 (n)) και f 2 (n) = O(g 2 (n)), τότε (f 1 + f 2 )(n) = O(max(g 1 (n), g 2 (n))) 4. Εάν f 1 (n) = O(g 1 (n)) και f 2 (n) = O(g 2 (n)), τότε f 1 (n)f 2 (n) = O(g 1 (n)g 2 (n)) Πληροφορικής 37

38 Ασυμπτωτικές Ταυτότητες Πληροφορικής 38

39 Συγγενείς του Ο() Ω() f(n) ειναι (g(n)) αν υπάρχει σταθερά c > 0 και ακέραια σταθερά n 0 1 έτσι ώστε f(n) c g(n) για n n 0 Θ() f(n) είναι (g(n)) αν υπάρχουν στεθερές c > 0 και c > 0 και ακέραια σταθερά n 0 1 έτσι ώστε c g(n) f(n) c g(n) για n n 0 ο() f(n) είναι o(g(n)) αν, για κάθε σταθερά c > 0, υπάρχει ακέραια σταθερά n 0 0 έτσι ώστε f(n) c g(n) για n n 0 ω() f(n) είναι (g(n)) αν, για κάθε σταθερά c > 0, υπάρχει ακέραια σταθερά n 0 0 έτσι ώστε f(n) c g(n) για n n 0 Πληροφορικής 39

40 Σχέσεις Ο() f(n) είναι O(g(n)) αν f(n) είναι ασυμπτωτικά μικρότερη ή ίση με g(n) Ω() 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) ω() f(n) είναι (g(n)) αν είναι ασυμπτωτικά αυστηρά μεγαλύτερη απο g(n) Πληροφορικής 40

41 Παραδείγματα συγγενών του Ο() 5n 2 είναι (n 2 ) f(n) είναι (g(n)) αν υπάρχει σταθερά c > 0 και μια ακέραια σταθερά n 0 1 έτσι ώστε f(n) c g(n) για n n 0 έστω c = 5 και n 0 = 1 5n 2 έστω (n) f(n) είναι (g(n)) αν υπάρχει σταθερά c > 0 και μια ακέραια σταθερά n 0 1 έτσι ώστε f(n) c g(n) για n n 0 έστω c = 1 και n 0 = 1 5n 2 είναι (n) f(n) είναι (g(n)) αν, για κάθε σταθερά c > 0, υπάρχει μια ακέραια σταθερά n 0 0 έτσι ώστε f(n) c g(n) για n n 0 χρειαζόμαστε 5n 02 c n 0 δεδομένου c, το n 0 που ικανοποιεί το παραπάνω, είναι n 0 c/5 0 Πληροφορικής 41

42 Ρυθμός Αύξησης του χρόνου εκτέλεσης Στις περισσότερες περιπτώσεις είτε δεν είμαστε σε θέση είτε δε μας ενδιαφέρει να βρούμε ακριβείς τύπους και απλά ασχολούμαστε με το ρυθμό αύξησης ή την τάξη αύξησης των συναρτήσεων που εκφράζουν την πολυπλοκότητα του αλγορίθμου. Τότε μιλάμε για ασυμπτωτικές εκτιμήσεις O, Θ ή Ω. c'f cf g g g cf cf O(f) Ω(f) Θ(f) Πληροφορικής 42

43 Παραδείγματα Παράδειγμα 1: a = b; Αυτή η ανάθεση παίρνει σταθερό χρόνο c, οπότε είναι Θ(1) Παράδειγμα 2: υπολογισμός n(n+1)/2 Παράδειγμα 3: (εναλλακτικός) υπολογισμός n(n+1)/2 sum = 0; for (i=1; i<=n; i++) sum += i; sum = 0; for (i=1; i<=n; i++) for (j=1; j<=i; j++) sum++; Σύγκριση 2 και 3: Υπολογισμός ίδιας έκφρασης με διαφορετικό κόστος! Θ(n) έναντι Θ(n 2 ) Πληροφορικής 43

44 Παραδείγματα (συν.) Παράδειγμα 4: υπολογισμός n 2 sum = 0; for (i=1; i<=n; i++) for (j=1; j<=n; j++) sum++; Παράδειγμα 5: Σύγκριση 3 και 4: Υπολογισμός διαφορετικών εκφράσεων με ίδιο κόστος! Θ(n 2 ) Παράδειγμα 6: sum = 0; for (k=1; k<=n; k*=2) for (j=1; j<=n; j++) sum++; Κόστος Θ(n log n) sum = 0; for (k=1; k<=n; k*=2) for (j=1; j<=k; j++) sum++; Κόστος Θ(n) Πληροφορικής 44

45 Χωρικά Όρια Κόστους Ισορροπία Μεταξύ Χρονικού / Χωρικού Κόστους Τα χωρικά όρια μπορούν επίσης να αναλυθούν με χρήση ασυμπτωτικής ανάλυσης Χρόνος: Αλγόριθμος που επιλύει το πρόβλημα Χώρος της δομής δεδομένων που απαιτείται για την υλοποίηση του αλγορίθμου Μπορούμε να μειώσουμε το χρόνο εάν θελήσουμε να θυσιάσουμε το χώρο (και αντίστροφα) Σκεφτείτε (στην πορεία του μαθήματος) παραδείγματα... Πληροφορικής 45

46 Παράδειγμα 1 Έστω η συνάρτηση g(n) = n 2 + n + 10 Λέμε ότι g(n) = O(n 2 ), διότι μπορούμε να βρούμε μία σταθερά c, και έναν αριθμό n 0 έτσι ώστε n > n 0 n 2 + n + 10 < c n 2 Μπορείτε να βρείτε τιμές για τα c και n 0 ; Π.χ. c=15, n 0 =1 Πληροφορικής 46

47 Παράδειγμα 2 Αν ξέρουμε ότι ένας αλγόριθμος έχει πολυπλοκότητα O(n) σε ένα σύστημα Pentium IV στα 3 GHz, πόση είναι η πολυπλοκότητα σε ένα σύστημα Pentium III στα 500 ΜHz; ΠΡΟΣΟΧΗ: Η πολυπλοκότητα ενός αλγορίθμου είναι ανεξάρτητη μηχανής. Πληροφορικής 47

48 Παράδειγμα 3 Βρέστε την πολυπλοκότητα (μέσης και χειρότερης περίπτωσης) των παρακάτω loops: 1. int k=0; for (int i=0; i<n; i++) for (int j=0; j<n; j++) k++; 2. int k=0; for (int i=1; i<n; i=2*i) for (int j=1; j<n; j++) k++; 3. int sum=0; for (int i=0; i<n; i++) for (int j=0; j<i*i; j++) sum++; Πληροφορικής 48

49 Παράδειγμα 3 Σε όλες τις περιπτώσεις μέση και χειρότερη περίπτωση έχουν ίδια πολυπλοκότητα ΠΡΟΣΟΧΗ: Mη συγχέουμε τη χειρότερη περίπτωση με την Ο() και τη μέση με τη Θ() Βρέστε την πολυπλοκότητα (μέσης και χειρότερης περίπτωσης) των παρακάτω loops: 1. int k=0; for (int i=0; i<n; i++) //n φορές for (int j=0; j<n; j++) k++; //n*n φορές Θ(n 2 ) (παρατηρήστε ότι είναι και O(n 2 ) και Ω(n 2 ) ) Πληροφορικής 49

50 Παράδειγμα 3 2. int k=0; for (int i=1; i<n; i=2*i) //το i παίρνει τιμές 1,2,4,8,... for (int j=1; j<n; j++) k++; //n-1 φορές Το 1ο loop θα εκτελεστεί συνολικά m φορές όπου 2 m-1 < n 2 m => m-1 < logn m => m=floor(logn) Επομένως Συνολικό κόστος αλγορίθμου (n-1)*logn=nlogn-logn Δηλαδή Θ(nlogn) Πληροφορικής 50

51 Παράδειγμα 3 3. int sum=0; for (int i=0; i<n; i++) //n φορές for (int j=0; j<i*i; j++) sum++; Για i=0 έχω 0 εκτελέσεις του 2ου loop i=1 1 i=2 4 i=3 9. i=n-1 (n-1) 2 Σύνολο πράξεων: 2 i n n 1)( 2 0 i n ( n 1) 3 ( n ) 6 Πληροφορικής 51

52 Παράδειγμα 4 Στον αλγόριθμο maxarray() θέλουμε να βρούμε πόσα ενδιάμεσα μέγιστα θα υπολογιστούν στη μέση περίπτωση (στη χειρότερη είναι n) Υποθέτουμε ότι κάθε μία από τις n! διατάξεις των n στοιχείων του πίνακα είναι ισοπίθανη. Πληροφορικής 52

53 Παράδειγμα 4 Έστω συμβολίζω με Ci το γεγονός της αλλαγής της ΜΑΧ τιμής κατά την i-οστή επανάληψη τότε: Prob[Ci]=Prob[A[i]>A[j], j<i]= 1/(i+1) Αρα Δηλ. T( n) E[ T( n)] T ( n) 0 i n 0 i n (1 Prob[ C 1 i (1 0 ) H i 1 i 1 n ] 0 Prob[ i C i O(log n) ]) Πληροφορικής 53

54 Έστω ο κάτωθι αλγόριθμος Παράδειγμα 5 Algorithm Max(A) Input: Πίνακας A A.length ακεραίων Output: Ο μεγαλύτερος ακέραιος του Α 1. max = A[0]; 2. for (i = 1; i < A.length; i++) 3. if (max < A[i]) 4. max = A[i]; 5. return max; Ποια η χειρότερη περίπτωση του αλγορίθμου υπολογισμού του μέγιστου στοιχείου ενός πίνακα; Πληροφορικής 54

55 Παράδειγμα 5 Ποια η χειρότερη περίπτωση του αλγορίθμου υπολογισμού του μέγιστου στοιχείου ενός πίνακα; Απάντηση: Ο πίνακας να είναι ταξινομημένος. Σε αυτή την περίπτωση θα έχουμε n-1 αλλαγές της μεταβλητής max. Πληροφορικής 55

56 Παράδειγμα 6 Να αναλυθεί λεπτομερώς η πολυπλοκότητα του Αλγορίθμου Ταξινομήσεως Επιλογής, περιγράφοντας με αδρές γραμμές τη λειτουργία του. Algorithm selectionsort(a) Input: Πίνακας Α n ακεραίων Output: Διατεταγμένος πίνακας 1. for (i = 0; I < A.length; i++) { 2. min = I; 3. for (j = i+1; j <= A.length; j++) 4. if (a[j] < a[min]) min = j); 5. temp = a[i]; 6. a[i] = a[min]; 7. a[min] = temp; 8. } Πληροφορικής 56

57 Παράδειγμα 6 Ο αλγόριθμος σαρώνει τον πίνακα Α με τα προς ταξινόμηση στοιχεία, από αριστερά προς δεξιά, διακρίνοντας τον: στο αριστερό τμήμα α=α[0 i-1], το οποίο στεγάζει διατεταγμένα τα i μικρότερα στοιχεία του Α στο αταξινόμητο δεξί τμήμα δ=α[i n-1], το οποίο αποτελείται από τα υπόλοιπα n-iστοιχεία Κάθε φορά βρίσκει - με απλή σάρωση το μικρότερο στοιχείο του δεξιού τμήματος δ και το ανταλλάσσει με το αριστερότερο στοιχείο του δ, επεκτείνοντας το διατεταγμένο τμήμα α κατά μία θέση προς τα δεξιά. Η όλη διαδικασία σταματά, όταν το δ κενωθεί. Πληροφορικής 57

58 Παράδειγμα 7 Να αναλυθεί ο ακόλουθος κώδικας αναστροφής ενός πίνακα: 1. void Trans(int [ ] [ ] A) { 2. int n = A.length, temp; 3. for (int i = 0; j < n; i++) { 4. for (int j = i+1; j < n; j++) { 5. temp = A[ i ] [ j ]; 6. A[ i ] [ j ] = A[ j ] [ i ]; 7. A[ j ] [ i ] = temp; 8. } 9. } 10. } Πληροφορικής 58

59 Παράδειγμα 7 1. void Trans(int [ ] [ ] A) { 2. int n = A.length, temp; 3. for (int i = 0; i < n; i++) { 4. for (int j = i+1; j < n; j++) { 5. temp = A[ i ] [ j ]; 6. A[ i ] [ j ] = A[ j ] [ i ]; 7. A[ j ] [ i ] = temp; 8. } 9. } 10. } Η γραμμή 3 εκτελείται συνολικά n+1φορές Η γραμμή 4 n+(n-1)+ +1=n(n+1)/2φορές, όπως και οι 5-7 Υποθέτοντας ότι όλες οι εντολές κοστίζουν Ο(1) χρόνο, η ολική πολυπλοκότητα είναι c(n 2 +1)=O(n 2 ). 59

60 Παράδειγμα 8 Έστω το ακόλουθο τμήμα κώδικα: L0 int m = 0; L1 for (int x 1 = 1; x 1 < c+1; x 1 ++) L2 for (int x 2 = 1; x 2 < x 1 + 1; x 2 ++) Ln Ln+1 for (int xn = 1; xn < xn-1 + 1; xn++) m++; Πόσες φορές έχει αυξηθεί η τιμή της μεταβλητής m; Πληροφορικής 60

61 Παράδειγμα 8 Πόσες φορές έχει αυξηθεί η τιμή της μεταβλητής m; Απάντηση: Παρατηρούμε ότι, ανά πάσα χρονική στιγμή, ισχύει ότι 1 xn xn-1 x 1 c. Επομένως, οι τιμές των x i συνιστούν μία συλλογή από μη διακεκριμένους ακεραίους του συνόλου { 1, 2, 3,, c }. Άρα, η τιμή που παίρνει η μεταβλητή m ισούται με όλους τους δυνατούς τρόπους επιλογής με επανάληψη n ακεραίων από το σύνολο { 1, 2, 3,, c } και συνεπώς c n 1 m n 61

62 Παράδειγμα 9 1. int Sum(int n, int a, int r) { 2. int s = a, p = a*r, k = 1; while (k < n) { 5. s += p; 6. p *= r; 7. k++; 8. } 9. return s; 10. } Να αναλυθεί η χρονική πολυπλοκότητα του παραπάνω κώδικα. Τι υπολογίζει; 62

63 Παράδειγμα 9 Να αναλυθεί η χρονική πολυπλοκότητα του παραπάνω κώδικα. Τι υπολογίζει; Απάντηση: Ο αλγόριθμος υπολογίζει το άθροισμα Σ 0 i<k ar i και είναι γραμμικός στο πλήθος n των όρων του αθροίσματος Πληροφορικής 63

64 Παράδειγμα 10 Έστω ο κάτωθι κώδικας του αλγορίθμου ταξινομήσεως εισαγωγής (insertion sort): 1. static void insertionsort (int [ ] a) { 2. int n = a.length, j, v; 3. for (int i = 1; i < n; i++) { 4. j = i; 5. v = a [ i ]; 6. while ((j > 0) && (v < a[ j -1])) { 7. a [ j ] = a [ j -1]; 8. j --; 9. } 10. a [ j ] = v; 11. } 12. } Εξηγήστε εν συντομία πώς λειτουργεί ο παραπάνω αλγόριθμος. 64

65 Παράδειγμα 10 Εξηγήστε εν συντομία πώς λειτουργεί ο παραπάνω αλγόριθμος. Απάντηση: Η ταξινόμηση εισαγωγής σαρώνει τον πίνακα a από αριστερά προς τα δεξιά, διακρίνοντας τον κάθε χρονική στιγμή σε δύο τμήματα: (α) το αριστερό Α, το οποίο στεγάζει διατεταγμένα τα στοιχεία που έχουν συναντηθεί έως τώρα, και (β) το δεξί Δ, το οποίο αποτελείται από τα στοιχεία που δεν έχουν ακόμη εξετασθεί, και, φυσικά παραμένει αταξινόμητο. Κάθε φορά παίρνει, ως το επόμενο προς εξέταση στοιχείο, το αριστερότερο στοιχείο v του Δ και το ενθέτει στη σωστή θέση στο Α, ολισθαίνοντας τα μεγαλύτερα του v στοιχεία κατά μία θέση προς τα δεξιά. Η όλη διαδικασία σταματά, όταν εξετασθούν όλα τα αντικείμενα του πίνακα και το Δ κενωθεί. 65

66 Παράδειγμα 11 Τρεις αλγόριθµοι Α, Β, και Γ έχουν αναλυθεί και έχει βρεθεί ότι ο χρόνος εκτέλεσης χειρίστης περίπτωσης για τον καθένα από αυτούς δίνεται αντίστοιχα από τις πιο κάτω συναρτήσεις: f (n) = n 2 g(n) = 150n logn h(n) = n αν n mod2 = 1 n 3 αν n mod2 = 0 Να αποφασίσετε ποιες από τις πιο κάτω προτάσεις είναι αληθείς. Να αιτιολογήσετε τις απαντήσεις σας: 1. Για µεγάλες τιµές του n (n>1000) στη χείριστη περίπτωση ο αλγόριθµος B είναι πιο αποδοτικός από τον αλγόριθµο A. 2. Για µικρές τιµές του n (n<100) στη χείριστη περίπτωση ο αλγόριθµος Β είναι πιο αποδοτικός από τον αλγόριθµοα. 3. Για µεγάλες τιµές του n (n>1000) στη χείριστη περίπτωση ο αλγόριθµος Γ είναι πιο αποδοτικός από τον αλγόριθµοβ. 4. f Ω(g) και g O(h). 5. v) f O(g) και g Θ(h). 6. f O(h) ή h O(f). 66

67 Παράδειγματα Να δείξετε ότι η συνάρτηση f (n) = 2 n+5 είναι Ο(2 n) ) Να δείξετε ότι η συνάρτηση f (n) = 2 5n δεν είναι Ο(2 n) ) 67

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

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

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

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

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

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

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

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

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

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

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

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

Ανάλυση Αλγορίθµων 4. Πειραµατικές Μελέτες. Χρόνος Εκτέλεσης. Περιγραφή και Υλικό Ανάγνωσης

Ανάλυση Αλγορίθµων 4. Πειραµατικές Μελέτες. Χρόνος Εκτέλεσης. Περιγραφή και Υλικό Ανάγνωσης Ανάλυση Αλγορίθµων Είσοδος Αλγόριθµος Έξοδος Περιγραφή και Υλικό Ανάγνωσης Χρόνος εκτέλεσης (.) Ψευδοκώδικας (.) Μέτρηση των στοιχειωδών πράξεων (.) Ασυµπτωτική σηµειογραφία (.2) Ασυµπτωτική ανάλυση (.2)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Δομές Δεδομένων & Αλγόριθμοι Δομές Δεδομένων & Αναζήτηση & Ταξινόμηση 1 Αναζήτηση Έχω έναν πίνακα Α με Ν στοιχεία. Πρόβλημα: Βρες αν το στοιχείο x ανήκει στον πίνακα Αν ο πίνακας είναι αταξινόμητος τότε μόνη λύση σειριακή αναζήτηση

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Αλγόριθμοι και Πολυπλοκότητα Φώτης Ε. Ψωμόπουλος, Περικλής Α. Μήτκας

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

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

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

Δομές Δεδομένων & Αλγόριθμοι Δομές Δεδομένων & Αναζήτηση & Ταξινόμηση 1 Αναζήτηση Έχω έναν πίνακα Α με Ν στοιχεία. Πρόβλημα: Βρες αν το στοιχείο x ανήκει στον πίνακα Αν ο πίνακας είναι αταξινόμητος τότε μόνη λύση σειριακή αναζήτηση

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

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

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

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

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

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

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

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

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

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

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

Πληροφορική 2. Αλγόριθμοι Πληροφορική 2 Αλγόριθμοι 1 2 Τι είναι αλγόριθμος; Αλγόριθμος είναι ένα διατεταγμένο σύνολο από σαφή βήματα το οποίο παράγει κάποιο αποτέλεσμα και τερματίζεται σε πεπερασμένο χρόνο. Ο αλγόριθμος δέχεται

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Αλγόριθμοι. Μάρθα Σιδέρη. ιαδικαστικά: ύο πρόοδοι 31 Μαρτίου, 18 Μαΐου 7-9μμ 20% η μία, ύο Προγραμματιστικές 1 προσθετικό βαθμό η μία.

Αλγόριθμοι. Μάρθα Σιδέρη. ιαδικαστικά: ύο πρόοδοι 31 Μαρτίου, 18 Μαΐου 7-9μμ 20% η μία, ύο Προγραμματιστικές 1 προσθετικό βαθμό η μία. Αλγόριθμοι Μάρθα Σιδέρη epl333 lect 011 1 ιαδικαστικά: ύο πρόοδοι 31 Μαρτίου, 18 Μαΐου 7-9μμ 0% η μία, ύο Προγραμματιστικές 1 προσθετικό βαθμό η μία. Οι πρόοδοι είναι προαιρετικές και το ποσοστό μετράει

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

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

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

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

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

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

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

ΑΛΓΟΡΙΘΜΟΙ Άνοιξη I. ΜΗΛΗΣ

ΑΛΓΟΡΙΘΜΟΙ  Άνοιξη I. ΜΗΛΗΣ ΑΛΓΟΡΙΘΜΟΙ http://eclass.aueb.gr/courses/inf161/ Άνοιξη 2016 - I. ΜΗΛΗΣ ΠΑΡΑΔΕΙΓΜΑΤΑ ΑΛΓΟΡΙΘΜΩΝ ΚΑΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑΣ ΑΛΓΟΡΙΘΜΟΙ - ΑΝΟΙΞΗ 2016 - Ι. ΜΗΛΗΣ - 03 - EXAMPLES ALG & COMPL 1 Example: GCD συνάρτηση

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Προβλήματα, αλγόριθμοι, ψευδοκώδικας

Προβλήματα, αλγόριθμοι, ψευδοκώδικας Προβλήματα, αλγόριθμοι, ψευδοκώδικας October 11, 2011 Στο μάθημα Αλγοριθμική και Δομές Δεδομένων θα ασχοληθούμε με ένα μέρος της διαδικασίας επίλυσης υπολογιστικών προβλημάτων. Συγκεκριμένα θα δούμε τι

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΑΣΥΜΠΤΩΤΙΚΗ ΑΝΑΛΥΣΗ & ΠΡΟΣΘΕΣΗ ΑΣΥΜΠΤΩΤΙΚΗ ΑΝΑΛΥΣΗ & ΠΡΟΣΘΕΣΗ Θέματα μελέτης Ορθότητα και απόδοση αλγορίθμων Παρουσίαση και ανάλυση αλγορίθμου για πρόσθεση Al Khwarizmi Αλγόριθμοι Το δεκαδικό σύστημα εφευρέθηκε στην Ινδία περίπου το

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

Κεφάλαιο 2. Βασικά στοιχεία ανάλυσης αλγορίθμων. Χρησιμοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

Κεφάλαιο 2. Βασικά στοιχεία ανάλυσης αλγορίθμων. Χρησιμοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne. Κεφάλαιο 2 Βασικά στοιχεία ανάλυσης αλγορίθμων Χρησιμοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne. 1 2.1 Υπολογιστική Επιλυσιμότητα "For me, great algorithms are the poetry of computation.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Αλγόριθμοι Ταξινόμησης Μέρος 1 Αλγόριθμοι Ταξινόμησης Μέρος 1 Μανόλης Κουμπαράκης 1 Το Πρόβλημα της Ταξινόμησης Το πρόβλημα της ταξινόμησης (sorting) μιας ακολουθίας στοιχείων με κλειδιά ενός γνωστού τύπου (π.χ., τους ακέραιους ή τις

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

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

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

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

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

5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ 5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ 5.1 Εισαγωγή στους αλγορίθμους 5.1.1 Εισαγωγή και ορισμοί Αλγόριθμος (algorithm) είναι ένα πεπερασμένο σύνολο εντολών οι οποίες εκτελούν κάποιο ιδιαίτερο έργο. Κάθε αλγόριθμος

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

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

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

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

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

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

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

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Διακριτά Μαθηματικά. Ενότητα 1: Ανάλυση Αλγορίθμων

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Διακριτά Μαθηματικά. Ενότητα 1: Ανάλυση Αλγορίθμων Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Διακριτά Μαθηματικά Ενότητα 1: Ανάλυση Αλγορίθμων Αν. Καθηγητής Κ. Στεργίου e-mail: kstergiou@uowm.gr Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Άδειες

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

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

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

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

Τηλ , 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)). Για

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

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

Σχεδίαση και Ανάλυση Αλγορίθμων Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 2.0 Πολυπλοκότητα Αλγορίθμων Ασυμπτωτική Πολυπλοκότητα Αναδρομικές Σχέσεις Σταύρος Δ. Νικολόπουλος 2016-17 Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Ιωαννίνων

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

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

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

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

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

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

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

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

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

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

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

d k 10 k + d k 1 10 k d d = k i=0 d i 10 i. Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά και Πληροφορικής Μαθηματικά Πανεπιστήμιο ΙΙ Ιωαννίνων

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

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

Αναζήτηση. 1. Σειριακή αναζήτηση 2. Δυαδική Αναζήτηση. Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη Αναζήτηση. Σειριακή αναζήτηση. Δυαδική Αναζήτηση Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη Παραδοχή Στη συνέχεια των διαφανειών (διαλέξεων) η ασυμπτωτική έκφραση (συμβολισμός Ο, Ω, Θ) του χρόνου

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

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

Ταξινόμηση. 1. Ταξινόμηση με Εισαγωγή 2. Ταξινόμηση με Επιλογή. Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη Ταξινόμηση. Ταξινόμηση με Εισαγωγή. Ταξινόμηση με Επιλογή Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη Ταξινόμηση Η ταξινόμηση sortg τοποθετεί ένα σύνολο κόμβων ή εγγραφών σε μία συγκεκριμένη διάταξη

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

Εισαγωγή στον Προγραμματισμό

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Πίνακες Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Πίνακες Πολλές φορές θέλουμε να κρατήσουμε στην μνήμη πολλά αντικείμενα

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

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

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

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

εισαγωγικές έννοιες Παύλος Εφραιμίδης Δομές Δεδομένων και

εισαγωγικές έννοιες Παύλος Εφραιμίδης Δομές Δεδομένων και Παύλος Εφραιμίδης 1 περιεχόμενα ενθετική ταξινόμηση ανάλυση αλγορίθμων σχεδίαση αλγορίθμων 2 ενθετική ταξινόμηση 3 ενθετική ταξινόμηση Βασική αρχή: Επιλέγει ένα-έναταστοιχείατηςμηταξινομημένης ακολουθίας

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

Δοµές Δεδοµένων. 9η Διάλεξη Ταξινόµηση - Στοιχειώδεις µέθοδοι. Ε. Μαρκάκης

Δοµές Δεδοµένων. 9η Διάλεξη Ταξινόµηση - Στοιχειώδεις µέθοδοι. Ε. Μαρκάκης Δοµές Δεδοµένων 9η Διάλεξη Ταξινόµηση - Στοιχειώδεις µέθοδοι Ε. Μαρκάκης Περίληψη Bubble Sort Selection Sort Insertion Sort Χαρακτηριστικά επιδόσεων Shellsort Ταξινόµηση συνδεδεµένων λιστών Δοµές Δεδοµένων

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

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

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

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

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

Ανάλυση της Ορθότητας Προγραμμάτων Ανάλυση της Ορθότητας Προγραμμάτων Στην ενότητα αυτή θα μελετηθούν τα εξής θέματα: Η διαδικαστική γλώσσα προγραμματισμού WHILE Τριάδες Hoare Μερική και Ολική Ορθότητα Προγραμμάτων Κανόνες Απόδειξης Μερικής

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

Διδακτικά προβλήματα σχετικά με την έννοια της επανάληψης

Διδακτικά προβλήματα σχετικά με την έννοια της επανάληψης Διδακτικά προβλήματα σχετικά με την έννοια της επανάληψης Έρευνες-Δομές Επανάληψης Από τις έρευνες προκύπτει ότι οι αρχάριοι προγραμματιστές δεν χρησιμοποιούν αυθόρμητα την επαναληπτική διαδικασία για

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

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

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

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

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

Έστω ένας πίνακας με όνομα Α δέκα θέσεων : 1 η 2 η 3 η 4 η 5 η 6 η 7 η 8 η 9 η 10 η Μονοδιάστατοι Πίνακες Τι είναι ο πίνακας γενικά : Πίνακας είναι μια Στατική Δομή Δεδομένων. Δηλαδή συνεχόμενες θέσεις μνήμης, όπου το πλήθος των θέσεων είναι συγκεκριμένο. Στις θέσεις αυτές καταχωρούμε

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

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

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

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

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

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

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

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

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

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

Κεφάλαιο 2. Βασικά στοιχεία ανάλυσης αλγορίθµων. Χρησιµοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

Κεφάλαιο 2. Βασικά στοιχεία ανάλυσης αλγορίθµων. Χρησιµοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne. Κεφάλαιο 2 Βασικά στοιχεία ανάλυσης αλγορίθµων Χρησιµοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne. 1 2.1 Υπολογιστική Επιλυσιµότητα "For me, great algorithms are the poetry of computation.

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

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

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

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

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

Ανάλυση της Ορθότητας Προγραμμάτων Ανάλυση της Ορθότητας Προγραμμάτων Στην ενότητα αυτή θα μελετηθούν τα εξής θέματα: Η διαδικαστική γλώσσα προγραμματισμού WHILE Τριάδες Hoare Μερική και Ολική Ορθότητα Προγραμμάτων ΚανόνεςΑπόδειξηςΜερικήςΟρθότητας

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