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

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

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

Transcript

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

2 Εισαγωγή Ας ξεκινήσουμε Για κάθε επιλύσιμο πρόβλημα Π υπάρχει σήμερα ένα σύνολο αλγορίθμων {Α1, Α2,, Αk} που το επιλύουν, k 1. Υποθέτουμε ότι διαθέτουμε έναν αλγόριθμο Α1 ο οποίος ταξινομεί στοιχεία σε 30 sec, σε έναν μεσαίου μεγέθους Η/Υ. Είναι πολύ πιθανό!!! εάν χρησιμοποιήσουμε έναν άλλο αλγόριθμο ταξινόμησης Α2, ο χρόνος επίλυσης του προβλήματος (ταξινόμηση στοιχείων) να αυξηθεί απίστευτα, έστω και αν ο Η/Υ στον οποίο εκτελείται ο Α2 είναι χιλιάδες φορές γρηγορότερος από αυτόν του Α1!!!

3 Εισαγωγή Δημιουργούνται επομένως Ερωτήματα!!! Είναι ο αλγόριθμος Α αποτελεσματικότερος του αλγορίθμου Β, δηλ. επιλύει ο αλγόριθμος Α το πρόβλημα Π σε λιγότερο χρόνο από τον αλγόριθμο Β; Πόσο θα αυξηθεί ο χρόνος εκτέλεσης του αλγορίθμου Α εάν διπλασιάσουμε τα δεδομένα εισόδου (μέγεθος του προβλήματος); Μπορώ να χρησιμοποιήσω τον αλγόριθμο Α όταν n>>, δηλ. όταν το μέγεθος n του προβλήματος Π που επιλύει είναι πολύ μεγάλο; Υπάρχει αλγόριθμος (ή μπορώ να σχεδιάσω έναν) ο οποίος επιλύει το πρόβλημα Π σε δεδομένο χρόνο T(n);

4 Εισαγωγή Τι θα Θέλαμε!!! Θα θέλαμε να διαθέτουμε αρκετούς αλγορίθμους Α1, Α2,, Αk για ένα Π, ώστε να είμαστε σε θέση να επιλέξουμε τον καλύτερο!!! Πρόβλημα Π Α1, Α2,, Αk Όλοι οι αλγόριθμοι θα πρέπει να είναι σωστοί (correct)!!! Όλοι οι αλγόριθμοι παρουσιάζουν θεωρητικό ενδιαφέρον!!!

5 Εισαγωγή Τι θα Θέλαμε!!! Θα θέλαμε να διαθέτουμε αρκετούς αλγορίθμους Α1, Α2,, Αk για ένα Π, ώστε να είμαστε σε θέση να επιλέξουμε τον καλύτερο!!! Ας θυμηθούμε τι είναι Αλγόριθμος! II. Αλγόριθμος είναι μια υπολογιστική διαδικασία για την επίλυση ενός προβλήματος, βασιζόμενη στην εκτέλεση μιας καλώς ορισμένης ακολουθίας απλών ενεργειών Αλγόριθμος Μέθοδος για την επίλυση ενός προβλήματος Δομή Δεδομένων Μέθοδος αποθήκευσης δεδομένων

6 Εισαγωγή Αλγόριθμος Πολλαπλασιασμού Είναι σε όλους γνωστός ο αλγόριθμος πολλαπλασιασμού δύο ακέραιων. Υπάρχει όμως και ένας άλλος, λιγότερο γνωστός, αλγόριθμος πολλαπλασιασμού (Al-Khwarizmi): Παράδειγμα Έστω ότι θέλουμε να πολλαπλασιάσουμε το ζεύγος ακεραίων (45, 19). Ο αλγόριθμος εργάζεται ως εξής: περιττός άρτιος

7 Εισαγωγή Αλγόριθμος Πολλαπλασιασμού Είναι σωστός ο αλγόριθμος πολλαπλασιασμού του Al-Khwarizmi; x = 13 = = 143 x x x x 1 1, << 1 0, << 2 1, << 3 O αλγόριθμος του Al-Khwarizmi είναι ένα συναρπαστικό μείγμα δεκαδικού και δυαδικού συστήματος!!!

8 Εισαγωγή Αλγόριθμος ΜΚΔ Αλγόριθμος του Ευκλείδη Ο aλγόριθμος του Ευκλείδη για ΜΚΔ: gcd(x,y) = gcd(y,x mod y) όπου x y είναι θετικοί ακέραιοι. Παράδειγμα Euclid(128,40) = Euclid(40,8) = Euclid(8,0) = 8 Ευκλείδης (300 πχ) Είναι σωστός ο αλγόριθμος εύρεσης ΜΚΔ του Ευκλείδη; Αρκεί να δείξουμε τον απλούστερο κανόνα gcd(x,y) = gcd(x-y,y) από τον οποίο προκύπτει ο παραπάνω κανόνας με επανειλημμένη αφαίρεση του y από τον x.

9 Εισαγωγή Ορθότητα Όλοι οι αλγόριθμοι θα πρέπει να είναι σωστοί (correct)!!! Για να αποδείξουμε ότι ένας αλγόριθμος είναι λάθος το μόνο που χρειαζόμαστε είναι να βρούμε ένα στιγμιότυπο του προβλήματος που επιλύει, για το οποίο δε δίνει σωστή απάντηση. Από την άλλη μεριά, είναι πολύ πιο δύσκολο να αποδείξουμε την ορθότητα ενός αλγορίθμου.

10 Εισαγωγή Πολυπλοκότητα Όλοι οι αλγόριθμοι παρουσιάζουν θεωρητικό ενδιαφέρον!!! Όμως, πρακτικό ενδιαφέρον παρουσιάζουν οι αλγόριθμοι οι οποίοι είναι αποτελεσματικοί (efficient), δηλ. οι αλγόριθμοι οι οποίοι ελαχιστοποιούν: τον χρόνο που εκτελούνται τον χώρο, τους επεξεργαστές, την ενέργεια που χρησιμοποιούν Θα λέμε ότι ένας αλγόριθμος είναι: αποτελεσματικός (efficient) μικρή πολυπλοκότητα (low-complexity) μη-αποτελεσματικός (inefficient) μεγάλη πολυπλοκότητα (high-com.)

11 Εισαγωγή Πολυπλοκότητα Στόχος μας είναι: (α) η ανάλυση και ο υπολογισμός της πολυπλοκότητας χρόνου και χώρου (time and space complexity) των αλγορίθμων, και (β) ο έλεγχος για το εάν ένας αλγόριθμος είναι βέλτιστος (optimal), δηλ. εάν είναι ο πιο αποτελεσματικός για το πρόβλημα για το οποίο σχεδιάστηκε. Άνω Φράγμα του Π Απόδειξη ενός ελάχιστου χρόνου για την επίλυση του προβλήματος Π Κάτω Φράγμα του Π = Πολυπλοκότητα Αλγόριθμου Βέλτιστος (optimal) Αλγόριθμος

12 Πολυπλοκότητα Αλγόριθμου Δυσκολία Προβλήματος Βελτιστότητα! Πολυπλοκότητα Αλγόριθμος A Πολυπλοκότητα Αλγόριθμου Όρια Πολυπλοκότητας Προβλήματος Απόδειξη Δυσκολίας Επίλυσης Θεώρημα Θ Ο(Τ) Άνω Φράγμα Πρόβλημα Π Ω(Τ) Κάτω Φράγμα

13 Πολυπλοκότητα Αλγόριθμου Δυσκολία Προβλήματος Βελτιστότητα! Πολυπλοκότητα Βέλτιστος Αλγόριθμος Αλγόριθμος A για το πρόβλημα Π Πολυπλοκότητα Αλγόριθμου Ο(Τ) Άνω Φράγμα Απόδειξη Δυσκολίας Επίλυσης Ω(Τ) Κάτω Φράγμα Θεώρημα Θ

14 Πολυπλοκότητα Αλγόριθμου Πολυπλοκότητα: Εμπειρική και Θεωρητική Διαθέτοντας ένα σύνολο αλγορίθμων {Α1, Α2,, Αk}, k 2, οι οποίοι επιλύουν το ίδιο πρόβλημα Π, πως θα αποφασίσουμε ποιος αλγόριθμος είναι ο πιο αποτελεσματικός, δηλ. ποιος αλγόριθμος έχει την μικρότερη πολυπλοκότητα. Υπάρχουν δύο προσεγγίσεις Εμπειρική (a posteriori) Θεωρητική (a priori)

15 Πολυπλοκότητα Αλγόριθμου Πολυπλοκότητα: Εμπειρική και Θεωρητική Εμπειρική (a posteriori) Η εμπειρική υπολογίζεται μετρώντας τον χρόνο εκτέλεσης του αλγορίθμου σε συγκεκριμένη μηχανή. Θεωρητική (a priori) Η θεωρητική καθορίζει μαθηματικά τον Χρόνο (κυρίως) και τον Χώρο που απαιτεί ο αλγόριθμος, ως συνάρτηση του μεγέθους των εξεταζόμενων στιγμιότυπων.

16 Πολυπλοκότητα Αλγόριθμου Πολυπλοκότητα: Εμπειρική και Θεωρητική Εμπειρική (a posteriori) Η εμπειρική υπολογίζεται μετρώντας τον χρόνο εκτέλεσης του αλγορίθμου σε συγκεκριμένη μηχανή. Θεωρητική (a priori) Στιγμιότυπο Είσοδος αλγορίθμου Μέγεθος Στιγμιοτύπου Μέγεθος Εισόδου Αλγορίθμου

17 Πολυπλοκότητα Αλγόριθμου Πολυπλοκότητα Θεωρητική Τα πλεονεκτήματα της θεωρητικής προσέγγισης του υπολογισμού της αποτελεσματικότητας ενός αλγορίθμου είναι ότι: δεν εξαρτάται από τον Η/Υ δεν εξαρτάται από τη γλώσσα προγραμματισμού δεν εξαρτάται από τις ικανότητες του προγραμματιστή

18 Πολυπλοκότητα Αλγόριθμου Πολυπλοκότητα Η απάντηση δίνεται από την αρχή της σταθερότητας (principle of invariance) Δυο διαφορετικές εφαρμογές ή υλοποιήσεις (implementations) του ίδιου αλγορίθμου, δηλ. όταν εκτελούνται σε διαφορετικούς Η/Υ, όταν γράφονται σε διαφορετικές γλώσσες, όταν κωδικοποιούνται από διαφορετικούς προγραμματιστές, κλπ. δεν διαφέρουν στην αποτελεσματικότητά τους περισσότερο από σταθερό πολλαπλάσιο!!!

19 Πολυπλοκότητα Αλγόριθμου Πολυπλοκότητα Η απάντηση δίνεται από την αρχή της σταθερότητας (principle of invariance) Δυο διαφορετικές εφαρμογές ή υλοποιήσεις (implementations) του ίδιου αλγορίθμου A, δεν διαφέρουν στην αποτελεσματικότητά τους περισσότερο από σταθερό πολλαπλάσιο!!! Εάν Ε1 είναι η αποτελεσματικότητα μιας εφαρμογής ενός A και Ε2 η αποτελεσματικότητα μιας άλλης εφαρμογής του, τότε ισχύει: Ε1 = c Ε2 όπου c μια σταθερά.

20 Πολυπλοκότητα Αλγόριθμου Πολυπλοκότητα Η απάντηση δίνεται από την αρχή της σταθερότητας (principle of invariance) Σήμερα μας ενδιαφέρει κυρίως η αποτελεσματικότητα (χρόνος) εκτέλεσης των αλγορίθμων μας!!! Εστιάζω στον Χρόνο Εάν t1(n) και t2(n) είναι οι χρόνοι εκτέλεσης δύο εφαρμογών του ίδιου αλγόριθμου A, τότε υπάρχει πάντα σταθερά c τέτοια ώστε: t1(n) = c t2(n) όπου n το μέγεθος του προβλήματος που επιλύουν.

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

22 Πολυπλοκότητα Αλγόριθμου Πολυπλοκότητα Εύλογο ερώτημα!!! ΠΟΙΑ ΜΟΝΑΔΑ θα χρησιμοποιήσουμε για να εκφράσουμε θεωρητικά την αποτελεσματικότητα ενός αλγορίθμου; Για παράδειγμα, θα την εκφράσουμε σε sec; θα την εκφράσουμε σε βήματα; κλπ. Θα χρησιμοποιήσουμε: Θεμελιώδη ή Βασική Πράξη (elementary operation).??????

23 Βασικές Πράξεις Βασική Πράξη Βασική πράξη ονομάζεται: η πράξη της οποίας ο χρόνος εκτέλεσης φράσσεται άνω (bounded above) από μια σταθερά η οποία εξαρτάται μόνο από τη χρησιμοποιούμενη εφαρμογή (H/Y, γλώσσα προγραμματισμού, ικανότητα προγραμματιστή, κλπ.) Επομένως, για την ανάλυση των αλγορίθμων μας θα χρησιμοποιήσουμε: ΜΟΝΟ το πλήθος των βασικών πράξεων που εκτελούνται από τον αλγόριθμο!!! ΌΧΙ τον ακριβή χρόνο που απαιτεί κάθε μια από τις πράξεις αυτές!!!

24 Βασικές Πράξεις Βασική Πράξη Προφανώς, ισχύει: Πλήθος Βασικών Πράξεων = f (Μέγεθος Εισόδου) Παράδειγμα Θεωρούμε το πρόβλημα της εύρεσης του ελάχιστου (min) στοιχείου μιας ακολουθίας S, δηλ. x min{s[i] 1 i n} n-1 βασικές πράξεις Είναι προφανές ότι, το πλήθος των βασικών πράξεων αυξάνει με την αύξηση του n.

25 Βασικές Πράξεις Βασική Πράξη Προσοχή!!!... Υπάρχουν όμως μαθηματικές πράξεις οι οποίες είναι αρκετά πολύπλοκες για να χαρακτηριστούν βασικές πράξεις. Παράδειγμα Το θεώρημα του Wilson το οποίο μας επιτρέπει να πούμε ότι ο ακέραιος n είναι πρώτος αριθμός εάν διαιρείται ακριβώς με το (n-1)!+1 function Wilson(n) begin if n divides (n-1)!+1 exactly then n is a prime else n is not a prime end;

26 Βασικές Πράξεις Βασική Πράξη Παράδειγμα Πρόβλημα διερεύνησης εάν ένα δοθέν στοιχείο x ανήκει σε μια ακολουθία S μήκους n ή όχι. Algorithm Linear-Search(S,x) begin index 1 while S[index] x and index n do index index + 1 end if index > n then return x S else return index end x=5 α) [3,1,5,2,9,7] b) [9,3,7,2,1,5] c) [4,7,1,2,9,3] d) [7,5,2,4,3,1] Βασικές πράξεις: S[index] x index n

27 Πολυπλοκότητα Χρόνου Πολυπλοκότητα Χρόνου Επειδή, ο χρόνος εκτέλεσης μιας Βασικής Πράξης φράσσεται άνω από μια σταθερά, ισχύει: Πολυπλοκότητα Χρόνου = f (Μέγεθος Εισόδου) Ανάλυση Χείριστης Περίπτωσης (Worst-case Analysis) Ανάλυση Μέσης Περίπτωσης (Average-case Analysis)

28 Πολυπλοκότητα Χρόνου Χείριστη Περίπτωση (Worst-case Analysis) Έστω Dn το σύνολο όλων των εισόδων μεγέθους n. Για κάθε Ι Dn, ας είναι t(ι) το πλήθος των Βασικών Πράξεων που εκτελούνται από τον αλγόριθμο με είσοδο Ι, δηλ. Ορίζουμε την πολυπλοκότητα Χείριστης Περίπτωσης (Worst-case Complexity) ως εξής: W(n) = max { t(i) I Dn }

29 Πολυπλοκότητα Χρόνου Μέση Περίπτωσης (Average-case Analysis) Υποθέτουμε ότι μπορούμε να αντιστοιχίσουμε μια πιθανότητα p(i) σε κάθε είσοδο Ι Dn, έτσι ώστε: p(i) = Πιθανότητα εμφάνισης της εισόδου I Ορίζουμε την πολυπλοκότητα Μέσης-Περίπτωσης (Average-case Complexity) ως εξής:

30 Πολυπλοκότητα Χρόνου Παράδειγμα Χειρίστης & Μέσης Περίπτωσης Παράδειγμα 1. (Γραμμική Διερεύνηση Linear Search) Δοθείσης μιας ακολουθίας στοιχείων S μήκους n και ενός στοιχείου x, θέλουμε να ελέγξουμε εάν το στοιχείο x ανήκει στην S και σε ποια θέση ή όχι. Algorithm Linear-Search(S,x) begin index 1 while S[index] x and index n do index index + 1 end if index > n then index 0 return index end Βασικές Πράξεις: S[index] x index n

31 Πολυπλοκότητα Χρόνου Παράδειγμα Χειρίστης & Μέσης Περίπτωσης Παράδειγμα 1. (Γραμμική Διερεύνηση Linear Search) Δοθείσης μιας ακολουθίας στοιχείων S μήκους n και ενός στοιχείου x, θέλουμε να ελέγξουμε εάν το στοιχείο x ανήκει στην S και σε ποια θέση ή όχι. Algorithm Linear-Search(S,x) begin index 1 while S[index] x and index n do Βασικές Πράξεις: S[index] x index n index index + 1 end if index > n then index 0 return index end Αρκεί μία ΜΟΝΟ Βασική Πράξη: S[index] x ή index n Γιατί;

32 Πολυπλοκότητα Χρόνου Παράδειγμα Χειρίστης & Μέσης Περίπτωσης Χειρίστη Πολυπλοκότητα Algorithm Linear-Search(S,x) begin index 1 while S[index] x and index n do x=5 α) [3,1,5,2,9,7] b) [9,3,7,2,1,5] c) [4,7,1,2,9,3] index index + 1 end if index > n then index 0 return index d) [7,5,2,4,3,1] end Βασική Πράξη: S[index] x Ανάλυση Χείριστης-Περίπτωσης: W(n) = n Ανάλυση Μέσης-Περίπτωσης: A(n) = (n+1)/2

33 Πολυπλοκότητα Χρόνου Παράδειγμα Χειρίστης & Μέσης Περίπτωσης Μέση Πολυπλοκότητα Υποθέτουμε ότι ισχύουν τα κάτωθι: όλα τα στοιχεία είναι διαφορετικά, το στοιχείο αναζήτησης υπάρχει στην S, δηλ. x S, όλες οι θέσεις εμφάνισης του x έχουν την ίδια πιθανότητα. Έστω Ιi η είσοδος για την οποία ισχύει x = S[i], 1 i n. Τότε και Επομένως

34 Πολυπλοκότητα Χρόνου Παράδειγμα Χειρίστης & Μέσης Περίπτωσης Μέση Πολυπλοκότητα Ας αποσύρουμε τώρα την υπόθεση ότι το στοιχείο αναζήτησης x S. Σε αυτή την περίπτωση θα συμβολίζουμε με Ie κάθε είσοδο μήκους n η οποία δεν περιέχει το στοιχείο x, δηλ. x S[i] i, 1 i n. Προφανώς ισχύει Έστω q η πιθανότητα το ζητούμενο στοιχείο x να βρίσκεται στην S. Τότε

35 Πολυπλοκότητα Χρόνου Παράδειγμα Χειρίστης & Μέσης Περίπτωσης Μέση Πολυπλοκότητα Επομένως για τη μέση περίπτωση θα ισχύει:

36 Πολυπλοκότητα Χρόνου Παράδειγμα Χειρίστης & Μέσης Περίπτωσης Μέση Πολυπλοκότητα Εάν q=1 (δηλ. το στοιχείο x βρίσκεται στην S ), τότε Εάν q=1/2, τότε Επομένως, στη περίπτωση αυτή, πρέπει να διερευνηθούν κατά μέσο όρο περίπου τα ¾ της S.

37 Πολυπλοκότητα Χρόνου Πρόβλημα 1: Εύρεση του Max στοιχείου Algorithm Find_Max-I begin max S[1]; posmax 1 for i 2 to n do if S[i]> max then max S[i] posmax i end end return max, posmax end max 21; posmax 1 return 28, 5 Βασική Πράξη: S[i] > max Ανάλυση Χείριστης-Περίπτωσης: W(n) = n-1 Ανάλυση Μέσης-Περίπτωσης: A(n) = n-1

38 Πολυπλοκότητα Χρόνου Πρόβλημα 2: Εύρεση του Max στοιχείου Algorithm Find_Max-ΙI begin for i 1 to logn do k 1 for j 1 to n/2i-1 step 2 do if S[j] < S[j+1] then S[k] S[j+1] else S[k] S[j] k k+1; end end return max S[1] end

39 Πολυπλοκότητα Χρόνου Πρόβλημα 3: Εύρεση του Max στοιχείου Algorithm Find_Max-ΙI begin for i 1 to logn do k 1 for j 1 to n/2i-1 step 2 do if S[j] < S[j+1] then S[k] S[j+1] else S[k] S[j] k k+1; end end return max S[1] end ΒΠ: S[j] > S[j+1] Χείριστη-Περίπτωση: W(n) = n-1 n/2+n/4+n/8+ +1 = n(1/2+1/4+ +1/n) = n(n-1)/n = n-1 Μέση-Περίπτωση: A(n) = n-1

40 Πολυπλοκότητα Χρόνου Πρόβλημα 4: Εύρεση των Min και Max στοιχείων Algorithm Find_Min_Max begin min max S[1] for i 2 to n do if S[i] < min then min S[i]; ΒΠ: S[i] < min, S[i] > max else if S[i] > max then Χείριστη-Περίπτωση: max S[i] end W(n) = (n-1)+(n-1)= 2n-2 end return min, max Μέση-Περίπτωση: end A(n) = (n-1)+1/2(n-1)= 3/2(n-1)

41 Πολυπλοκότητα Χρόνου Πρόβλημα 5: Ταξινόμηση (Αλγόριθμος Φυσαλίδας) Algorithm Bubble-sort begin for i 1 to n-1 do for j n downto i+1 do if S[j] < S[j-1] then Swap(S[j], S[j-1]) end end return S end Ορθότητα

42 Πολυπλοκότητα Χρόνου Πρόβλημα 5: Ταξινόμηση (Αλγόριθμος Φυσαλίδας) Algorithm Bubble-sort begin for i 1 to n-1 do for j n downto i+1 do if S[j] < S[j-1] then Swap(S[j], S[j-1]) end end return S end Πολυπλοκότητα ΒΠ: S[j] < S[j-1]

43 Πολυπλοκότητα Χρόνου Πρόβλημα 5: Ταξινόμηση (Αλγόριθμος Φυσαλίδας) Algorithm Bubble-sort begin for i 1 to n-1 do for j n downto i+1 do ΒΠ: S[j] < S[j-1] Χείριστη-Περίπτωση: if S[j] < S[j-1] then Swap(S[j], S[j-1]) end end return S end Μέση-Περίπτωση: A(n) = n(n-1)/2

44 Πολυπλοκότητα Χρόνου Πρόβλημα 6: Ταξινόμηση (Αλγόριθμος Παρεμβολής) Algorithm Insertion-sort begin for i 2 to n do x S[i]; j i-1 while x < S[j] and j >= 1 do 1 2 i-1 i Ταξινομημένο Τμήμα S[j+1] S[j] j j-1 end S[j+1] x end return S end Ορθότητα x Μη-ταξινομημένο Τμήμα

45 Πολυπλοκότητα Χρόνου Πρόβλημα 6: Ταξινόμηση (Αλγόριθμος Παρεμβολής) Algorithm Insertion-sort begin for i 2 to n do x S[i]; j i-1 while x < S[j] and j >= 1 do 1 2 i-1 i Ταξινομημένο Τμήμα x Μη-ταξινομημένο Τμήμα S[j+1] S[j] j j-1 end S[j+1] x end return S end Πολυπλοκότητα ΒΠ: x < S[j]

46 Πολυπλοκότητα Χρόνου Πρόβλημα 6: Ταξινόμηση (Αλγόριθμος Παρεμβολής) Χειρίστη-Περίπτωση i i 1 i i i x Πλήθος συγκρίσεων σε σχέση με τη θέση του στοιχείου x 2 i-1 i x Ταξινομημένο Τμήμα Μη-ταξινομημένο Τμήμα Χειρίστη-Περίπτωση: W(n) = n(n-1)/2

47 Πολυπλοκότητα Χρόνου Πρόβλημα 6: Ταξινόμηση (Αλγόριθμος Παρεμβολής) Μέση-Περίπτωση i i 1 i i i Πλήθος συγκρίσεων σε σχέση με τη θέση του στοιχείου x x Το στοιχείο x μπορεί να μεταφερθεί σε i+1 θέσεις!!! Η πιθανότητα το x να μεταφερθεί σε μία από αυτές τις θέσεις είναι 1/i+1!!! 2 i-1 i Ταξινομημένο Τμήμα x Μη-ταξινομημένο Τμήμα Υποθέτουμε ότι: (α) τα στοιχεία του S είναι όλα διαφορετικά μεταξύ του, και (β) όλες οι είσοδοι έχουν την ίδια πιθανότητα εμφάνισης

48 Πολυπλοκότητα Χρόνου Πρόβλημα 6: Ταξινόμηση (Αλγόριθμος Παρεμβολής) Μέση-Περίπτωση i i 1 i i i x Πλήθος συγκρίσεων σε σχέση με τη θέση του στοιχείου x 2 i-1 i Ταξινομημένο Τμήμα x Μη-ταξινομημένο Τμήμα Επομένως, με πιθανότητα 1/i+1 καταλαμβάνει την k-οστη θέση και απαιτεί k συγκρίσεις:

49 Πολυπλοκότητα Χρόνου Πρόβλημα 6: Ταξινόμηση (Αλγόριθμος Παρεμβολής) Μέση-Περίπτωση i i 1 i i i x Πλήθος συγκρίσεων σε σχέση με τη θέση του στοιχείου x 2 i-1 i Ταξινομημένο Τμήμα x Μη-ταξινομημένο Τμήμα Επομένως, με πιθανότητα 1/i+1 καταλαμβάνει την k-οστη θέση και απαιτεί k συγκρίσεις:

50 Πολυπλοκότητα Χρόνου Πρόβλημα 6: Ταξινόμηση (Αλγόριθμος Παρεμβολής) Μέση-Περίπτωση i i 1 i i i Πλήθος συγκρίσεων σε σχέση με τη θέση του στοιχείου x x Τώρα, προσθέτω τα κόστη όλων των n-1 παρεμβολών : 2 i-1 i Ταξινομημένο Τμήμα x Μη-ταξινομημένο Τμήμα

51 Πολυπλοκότητα Χρόνου Πρόβλημα 6: Ταξινόμηση (Αλγόριθμος Παρεμβολής) Μέση-Περίπτωση i i 1 i i i Πλήθος συγκρίσεων σε σχέση με τη θέση του στοιχείου x x Τώρα, προσθέτω τα κόστη όλων των n-1 παρεμβολών : 2 i-1 i Ταξινομημένο Τμήμα x Μη-ταξινομημένο Τμήμα

52 Πολυπλοκότητα Χρόνου Πρόβλημα 6: Ταξινόμηση (Αλγόριθμος Παρεμβολής) Μέση-Περίπτωση i i 1 i i i Πλήθος συγκρίσεων σε σχέση με τη θέση του στοιχείου x x Τώρα, προσθέτω τα κόστη όλων των n-1 παρεμβολών : 2 i-1 i x Ταξινομημένο Τμήμα Μη-ταξινομημένο Τμήμα Ισχύει:

53 Πολυπλοκότητα Χρόνου Πρόβλημα 6: Ταξινόμηση (Αλγόριθμος Παρεμβολής) Μέση-Περίπτωση i i 1 i i i x Αντικαθιστώντας, παίρνουμε: Πλήθος συγκρίσεων σε σχέση με τη θέση του στοιχείου x 2 i-1 i Ταξινομημένο Τμήμα x Μη-ταξινομημένο Τμήμα

54 Πολυπλοκότητα Χρόνου Πρόβλημα 6: Ταξινόμηση (Αλγόριθμος Παρεμβολής) Μέση-Περίπτωση i i 1 i i i x Αντικαθιστώντας, παίρνουμε: Πλήθος συγκρίσεων σε σχέση με τη θέση του στοιχείου x 2 i-1 i Ταξινομημένο Τμήμα x Μη-ταξινομημένο Τμήμα

55 Ασυμπτωτική Πολυπλοκότητα Τι είδαμε ως τώρα ; Πλήθος Βασικών Πράξεων ενός αλγόριθμου Πολυπλοκότητες W(n) και A(n) Ερώτημα Επόμενο Εύλογο Ερώτημα Μήπως σε αυτήν την προσέγγιση της πολυπλοκότητας υπεισέρχονται στον υπολογισμό μας παράγοντες οι οποίοι δεν μας διευκολύνουν να εκτιμήσουμε την αποτελεσματικότητα ενός αλγόριθμου; Είναι οι παράγοντες αυτοί τόσο σημαντικοί ώστε να μην μπορούν να αγνοηθούν;

56 Ασυμπτωτική Πολυπλοκότητα Ας αναφερθούμε στο πρώτο ερώτημα!!! Ερώτημα Μήπως σε αυτή την προσέγγιση υπεισέρχονται παράγοντες οι οποίοι δεν μας διευκολύνουν στην εκτίμησή μας ; Έστω Αλγόριθμος Α W(n) = n3 / 4 Αλγόριθμος B W(n) = 10 n2 Ισχύει n3 / 4 < 10 n2 Τότε Ο αλγόριθμος Α είναι αποτελεσματικότερος του Β!!! Όμως Χωρίς δυσκολία, παρατηρούμε ότι για μέγεθος εισόδου n >> (αρκετά μεγάλο) ο αλγόριθμος Β είναι πολύ πιο αποτελεσματικός από τον Α. για n < 40

57 Ας αναφερθούμε στο πρώτο ερώτημα!!! Ασυμπτωτική Πολυπλοκότητα

58 Ασυμπτωτική Πολυπλοκότητα Ας αναφερθούμε στο πρώτο ερώτημα!!! n n0 = 2500

59 Ασυμπτωτική Πολυπλοκότητα Ας αναφερθούμε στο πρώτο ερώτημα!!! Από το παραπάνω παράδειγμα γίνεται σαφές ότι: Χρειαζόμαστε έναν τρόπο να εξασφαλίσουμε μερικές κατηγορίες συναρτήσεων οι οποίες ΕΞΑΛΕΙΦΟΥΝ ΜΗ-ΣΗΜΑΝΤΙΚΟΥΣ ΠΑΡΑΓΟΝΤΕΣ όπως σταθερές, μικρού μεγέθους εισόδους, κλπ.

60 Ασυμπτωτική Πολυπλοκότητα Συμβολισμοί Συνόλων Ν = {0, 1, 2, } Ν+ = {1, 2, } R = Το σύνολο των πραγματικών R+ = Το σύνολο των πραγματικών > 0 R* = Το σύνολο των πραγματικών 0

61 Ασυμπτωτική Πολυπλοκότητα Συντομογραφίες Ο, Ω και Θ Ορισμός: Έστω μια συνάρτηση Ορίζουμε να είναι το σύνολο όλων των συναρτήσεων T : N R*, οι οποίες φράσσονται άνω από την f(n), με την προϋπόθεση ότι η τιμή του n είναι μεγαλύτερη από ή ίση με ένα κατώφλι n0. Το σύνολο O(f(n)) ονομάζεται τάξη της f(n) Εάν T(n) O(f(n)) θα λέμε ότι T(n) είναι τάξεως f(n) Συχνά, T(n) O(f(n)) γράφεται T(n) = O(f(n))

62 Ασυμπτωτική Πολυπλοκότητα Συντομογραφίες Ο, Ω και Θ Σύμφωνα με την αρχή της σταθερότητας, εάν μια εφαρμογή Ε1 ενός αλγορίθμου Α εκτελείται σε χρόνο T1(n), τότε οποιαδήποτε άλλη εφαρμογή Ε2 του ίδιου αλγορίθμου Α εκτελείται σε χρόνο τάξεως T2 (n) = c T1(n), όπου c σταθερά και n το μέγεθος του προβλήματος. Θα λέμε ότι ο αλγόριθμος εκτελείται σε χρόνο T(n) τάξης f(n) εάν η συνάρτηση f : N R* είναι τέτοια ώστε T(n) O(f(n)) Επίσης, θα είναι σωστό να γράφουμε T(n) = n3 + 3n2 + n + 8 O(f(n)) Ερώτηση: T(n) O(n3)? T(n) O(n4)? T(n) O(n2)?

63 Ασυμπτωτική Πολυπλοκότητα Συντομογραφίες Ο, Ω και Θ Γενικά, εκφράζουμε την τάξη του χρόνου εκτέλεσης T(n) ενός αλγορίθμου χρησιμοποιώντας την απλούστερη δυνατή συνάρτηση f για την οποία ισχύει T(n) O(f(n)). Εάν T(n) O(f(n)), τότε η συνάρτηση T(n) αυξάνει όχι γρηγορότερα από τη συνάρτηση f(n) Ισχύει εάν-ν

64 Ασυμπτωτική Πολυπλοκότητα Συντομογραφίες Ο, Ω και Θ Ορισμός: Έστω μια συνάρτηση Ορίζουμε να είναι το σύνολο όλων των συναρτήσεων T : N R*, οι οποίες φράσσονται κάτω από την f(n), με την προϋπόθεση ότι η τιμή του n είναι μεγαλύτερη από ή ίση με ένα κατώφλι n0. Το σύνολο Ω(f(n)) ονομάζεται το σύνολο ωμέγα της f(n) (the omega of f(n)). Εάν T(n) Ω(f(n)), τότε η T(n) αυξάνει τουλάχιστον όσο γρήγορα αυξάνη και η συνάρτηση f(n)

65 Ασυμπτωτική Πολυπλοκότητα Συντομογραφίες Ο, Ω και Θ Ορισμός: Έστω μια συνάρτηση Ορίζουμε να είναι το σύνολο όλων των συναρτήσεων T(n), δηλ. T : N R*, οι οποίες φράσσονται άνω και κάτω από την f(n), με την προϋπόθεση ότι η τιμή του n είναι μεγαλύτερη από ή ίση με ένα κατώφλι n0. Εάν T(n) Θ(f(n)), τότε η συνάρτηση T(n) αυξάνει ίδια με τη συνάρτηση f(n)

66 Ασυμπτωτική Πολυπλοκότητα Συντομογραφίες Ο, Ω και Θ Ισοδύναμος Ορισμός: Ορίζουμε και ονομάζουμε το σύνολο ακριβή τάξη της f(n) ( exact order of f(n) ). Ισχύει εάν-ν εάν-ν και

67 Ασυμπτωτική Πολυπλοκότητα Βασικές Ιδιότητες των Ο, Ω και Θ Έστω f, g : N R*, τότε ισχύουν οι παρακάτω προτάσεις: 0 c>0

68 Ασυμπτωτική Πολυπλοκότητα Βασικές Ιδιότητες των Ο, Ω και Θ Σχηματική Παράσταση

69 Ασυμπτωτική Πολυπλοκότητα Βασικές Ιδιότητες των Ο, Ω και Θ Εάν f, g : N R*, τότε ισχύουν οι παρακάτω προτάσεις:

70 Ασυμπτωτική Πολυπλοκότητα Βασικές Ιδιότητες των Ο, Ω και Θ Εάν f, g : N R*, ισχύει η σχέση: Η παραπάνω ιδιότητα χρησιμοποιείται συχνά για την απλοποίηση ασυμπτωτικών υπολογισμών. Παράδειγμα

71 Ασυμπτωτική Πολυπλοκότητα Τώρα Γνωρίζω!!! n n0 = 2500

72 Ασυμπτωτική Πολυπλοκότητα Τώρα Γνωρίζω!!! Ασυμπτωτική Πολυπλοκότητα Αλγόριθμου Α Ασυμπτωτική Πολυπλοκότητα Αλγόριθμου Β n n0 = 2500

73 Ασυμπτωτική Πολυπλοκότητα Χρόνος t Τώρα Γνωρίζω!!! n n0 n0 Μέγεθος εισόδου n

74 Ασυμπτωτική Πολυπλοκότητα Χρόνος t Τώρα Γνωρίζω!!! Ασυμπτωτική Πολυπλοκότητα Αλγόριθμου Α Ασυμπτωτική Πολυπλοκότητα Αλγόριθμου Β n n0 n0 Μέγεθος εισόδου n

75 Ασυμπτωτική Πολυπλοκότητα Χρόνος t Σύγκριση Συναρτήσεων Πολυπλοκότητας!!! Μέγεθος εισόδου n

76 Ασυμπτωτική Πολυπλοκότητα Χρόνος t Σύγκριση Συναρτήσεων Πολυπλοκότητας!!! n n0 n0 Μέγεθος εισόδου n

77 Ασυμπτωτική Πολυπλοκότητα Χρόνος t Σύγκριση Συναρτήσεων Πολυπλοκότητας!!! n n'0 n n0 n0 Μέγεθος εισόδου n n'0

78 Ασυμπτωτική Πολυπλοκότητα Χρόνος t Σύγκριση Συναρτήσεων Πολυπλοκότητας!!! n n''0 n0 n'0 Μέγεθος εισόδου n n''0

79 Ασυμπτωτική Πολυπλοκότητα Σύγκριση Συναρτήσεων Πολυπλοκότητας!!! Ενδιαφερόμαστε για την συμπεριφορά των αλγορίθμων μας για μεγάλες τιμές n του μεγέθους της εισόδου τους!! Χρόνος t Όλοι οι αλγόριθμοι για μικρές τιμές του n είναι αποτελεσματικοί!!! n0 Μέγεθος εισόδου n

80 Ασυμπτωτική Πολυπλοκότητα Απλοί Κανόνες για Απλοποίηση Συναρτήσεων!!!!!!!!! Οι πολλαπλασιαστικές σταθερές μπορούν να παραλείπονται: για παράδειγμα, το 14n2 γίνεται n2, το n γίνεται n. Το na επικρατεί έναντι του nb εάν a > b: το n3 επικρατεί έναντι του n2. Ένας εκθετικός όρος επικρατεί έναντι οποιουδήποτε πολυωνυμικού: το 3n επικρατεί έναντι του n100 (επικρατεί ακόμη και έναντι του 2n). Ένας πολυωνυμικός όρος επικρατεί έναντι οποιουδήποτε λογαριθμικού: το n επικρατεί έναντι του (logn)3 = log3n. Αυτό σημαίνει ότι το n2 επικρατεί έναντι του n logn. Και φυσικά:

81 Αλγόριθμοι Παραδειγμάτων Αλγόριθμος Linear-Search Algorithm Linear-Search begin index 1 while S[index] x && index n do Πολυπλοκότητα Χείριστη-Περίπτωση: W(n) = n Μέση-Περίπτωση: A(n) = (n+1)/2 index index + 1 end if index > n then index 0 return index end Ασυμπτωτική Πολυπλοκότητα W(n) = Ο(n) A(n) = Ο(n)

82 Αλγόριθμοι Παραδειγμάτων Αλγόριθμος Find_Max-I Algorithm Find_Max-I begin max S[1]; posmax 1 for i 2 to n do if S[i]> max then max S[i]; posmax I end end return max, posmax end Πολυπλοκότητα Χείριστη-Περίπτωση: W(n) = n-1 Μέση-Περίπτωση: A(n) = n-1 Ασυμπτωτική Πολυπλοκότητα W(n) = Ο(n) A(n) = Ο(n)

83 Αλγόριθμοι Παραδειγμάτων Αλγόριθμος Find_Max-II Algorithm Find_Max-II begin for i 1 to logn do k 1 for j 1 to n/2i-1 step 2 do Πολυπλοκότητα Χείριστη-Περίπτωση: W(n) = n-1 Μέση-Περίπτωση: A(n) = n-1 if S[j] < S[j+1] then S[k] S[j+1] else S[k] S[j] k k+1; end end return max S[1] end Ασυμπτωτική Πολυπλοκότητα W(n) = Ο(n) A(n) = Ο(n)

84 Αλγόριθμοι Παραδειγμάτων Αλγόριθμος Find_Min-Max Algorithm Find_Min-Max begin min max S[1] for i 2 to n do if S[i] < min then min S[i] else if S[i] > max then max S[i] end end return min, max end Πολυπλοκότητα Χείριστη-Περίπτωση: W(n) = 2n-2 Μέση-Περίπτωση: A(n) = 3/2(n-1) Ασυμπτωτική Πολυπλοκότητα W(n) = Ο(n) A(n) = Ο(n)

85 Αλγόριθμοι Παραδειγμάτων Αλγόριθμος Bubble-sort Algorithm Bubble-sort begin for i 1 to n-1 do for j n downto i+1 do Πολυπλοκότητα Χείριστη-Περίπτωση: W(n) = n(n-1)/2 Μέση-Περίπτωση: A(n) = n(n-1)/2 if S[j] < S[j-1] then Swap(S[j], S[j-1]) end end return S end Ασυμπτωτική Πολυπλοκότητα W(n) = Ο(n2) A(n) = Ο(n2)

86 Αλγόριθμοι Παραδειγμάτων Αλγόριθμος Insertion-sort Algorithm Insertion-sort begin for i 2 to n do x S[i]; j i-1 while j >= 1 and S[j] > x do Πολυπλοκότητα Χείριστη-Περίπτωση: W(n) = n(n-1)/2 Μέση-Περίπτωση: A(n) = n2/4 S[j+1] S[j] j j-1 end S[j+1] x end return S end Ασυμπτωτική Πολυπλοκότητα W(n) = Ο(n2) A(n) = Ο(n2)

87 Αναδρομικοί Αλγόριθμοι Αναδρομικός Αλγόριθμος Min-Max Algorithm Min-Max(S) Πολυπλοκότητα S: array[1..n] of integer begin if S = 2 then return(min(s), Max(S)) else Διαίρεσε το S σε δύο περίπου ίσα υποσύνολα S1 και S2 W(n) =? A(n) =? Βασική Πράξη S =2 και οι βασικές πράξεις των δύο Min-Max με είσοδο ~ n/2 (min1, max1) Min-Max(S1) (min2, max2) Min-Max(S2) return Min(min1,min2), Max(max1,max2) end end W(n) = 1 εάν n = 2 W(n) = 2W(n/2)+2 εάν n > 2

88 Αναδρομικοί Αλγόριθμοι Αναδρομικός Αλγόριθμος Min-Max Algorithm Min-Max(S) Βασική Πράξη : S =2 & οι βασικές πράξεις του Min-Max είσοδο ~ n/2 Πολυπλοκότητα : Αναδρομική Σχέση Ανάλυση Χείριστης Περίπτωσης : W(n) =?

89 Αναδρομικοί Αλγόριθμοι Αναδρομικός Αλγόριθμος Binary-Search Algorithm Binary-Search(A, x, low, high) A: array[1..n] of integer begin if (high < low) return(not-found) mid (low + high) / 2 if (A[mid] > x) then return BinarySearch(A, x, low, mid-1) Πολυπλοκότητα W(n) =? A(n) =? Βασική Πράξη A[mid] > value και οι βασικές πράξεις του BinarySearch με είσοδο ~ n/2 else if (A[mid] < x) then return BinarySearch(A, x, mid+1, high) else return mid end W(n) = 1 εάν n = 1 W(n) = 1 + W(n/2) εάν n > 1

90 Αναδρομικοί Αλγόριθμοι Αναδρομικός Αλγόριθμος Binary-Search Algorithm Binary-Search(A, x, low, high) Βασική Πράξη : A[mid] > x & οι ΒΠ του BinarySearch με είσοδο ~ n/2 Πολυπλοκότητα : Αναδρομική Σχέση Ανάλυση Χείριστης Περίπτωσης : W(n) =?

91 Αναδρομικοί Αλγόριθμοι Αναδρομικός Αλγόριθμος Αlpha Algorithm Αlpha Έστω ότι η πολυπλοκότητα του αλγόριθμου Alpha δίδεται από την σχέση: Πολυπλοκότητα : Αναδρομική Σχέση Ανάλυση Χείριστης Περίπτωσης : W(n) =?

92 Αναδρομικές Σχέσεις Επίλυση Αναδρομικών Σχέσεων Με Εικασία και Απόδειξή της Με χρήση της Χαρακτηριστικής Εξίσωσης Με Επαναληπτική Αντικατάσταση Με χρήση της Κύριας Μεθόδου (Master Theorem)

93 Επίλυση Αναδρομικών Σχέσεων Κύρια Μέθοδος (Master Method) H Κύρια μέθοδος είναι ένα σημαντικό εργαλείο για την επίλυση μιας μεγάλης κατηγορίας αναδρομικών σχέσεων. Έστω T(n): Z+ R* μια αναδρομική σχέση: όπου a 1 και b > 1 σταθερές, είναι είτε ή, και f (n) μια θετική συνάρτηση ορισμένη πάνω στο σύνολο των θετικών ακεραίων, δηλ. f (n): Z+ R*.

94 Επίλυση Αναδρομικών Σχέσεων Master Μέθοδος Κύρια Μέθοδος Εάν ο χρόνος εκτέλεσης Τ(n) ενός αλγόριθμου Α για την επίλυση ενός προβλήματος Π μεγέθους Θ(n) δίδεται από την αναδρομική σχέση τότε: Τ(n) είναι ο χρόνος για την επίλυση a υποπροβλημάτων μεγέθους n / b συν f(n) η οποία είναι το άθροισμα: του χρόνου για τη διαμέριση του αρχικού Π σε a υπο-προβλήματα, και του χρόνου για τον συνδυασμό των λύσεων των υπο-προβλημάτων για να πάρουμε την τελική λύση του αρχικού προβλήματος Π.

95 Επίλυση Αναδρομικών Σχέσεων Master Μέθοδος Κύρια Μέθοδος Έστω f (n) = O(nc), τότε: και η λύση της είναι: εάν 1 εάν 2 εάν 3

96 Επίλυση Αναδρομικών Σχέσεων - Παραδείγματα Κύρια Μέθοδος Παράδειγμα 1: και Ισχύει : Λύση : 2 εάν 1 εάν 2 εάν 3

97 Επίλυση Αναδρομικών Σχέσεων - Παραδείγματα Κύρια Μέθοδος Παράδειγμα 2: και Ισχύει : Λύση : εάν 1 εάν 2 εάν 3 2

98 Επίλυση Αναδρομικών Σχέσεων - Παραδείγματα Κύρια Μέθοδος Παράδειγμα 3: και Ισχύει : Λύση : 3 εάν 1 εάν 2 εάν 3

99 Επίλυση Αναδρομικών Σχέσεων - Παραδείγματα Κύρια Μέθοδος Παράδειγμα 4: και Ισχύει : Λύση : 1 εάν 1 εάν 2 εάν 3

100 Επίλυση Αναδρομικών Σχέσεων - Παραδείγματα Κύρια Μέθοδος Παράδειγμα 5:??????

101 Ο χάρτης των κλάσεων (μέχρι τώρα) Εάν P NP Πρόβλημα Euler Παραγοντοποίηση? Ισομορφισμός? Πολλαπλασιασμός Πινάκων NC P NP POLΥNOMIAL Πρόβλημα Hamilton SAT, Διαμέρισης ΝP-πλήρη ΝP-δύσκολα EXPOΝENTIAL Πρόβλημα Τερματισμού Kάλυψης, Σφαίρα 10ο Πρόβλημα Hilbert ΜΗ-ΕΠΙΛΥΣΙΜΑ

102 Κλάσεις Πολυπλοκότητας Πολυπλοκότητα Αποτελεσματικός (efficient ή fast ) Εάν η πολυπλοκότητά του είναι πολυωνυμική (polynomial) ως προς το μέγεθος της εισόδου (polynomial in the input size, say n): Μη-αποτελεσματικός (inefficient) Εάν η πολυπλοκότητά του είναι για παράδειγμα:

103 Ερωτήματα - Προβληματισμοί Πολυπλοκότητα Αλγόριθμοι Πολυωνυμικοί Εκθετικοί Ο(nk), k 1 Ο(cn), c >1 Πολυωνυμικός Χρόνος Εκτέλεσης Εκθετικός Χρόνος Εκτέλεσης

104 Ιστορία των Sissa και Moore Ερωτήματα - Προβληματισμοί

105 Ερωτήματα - Προβληματισμοί Χρόνος Εκτέλεσης f (n) = 2n f (n) = n! Μέγεθος Εισόδου n Πρόβλημα Π 2 log n Πολυπλοκότητα Χρόνου n?????? και n log n δεύτερο δεύτερα δεύτερα δεύτερα δεύτερα δεύτερα δεύτερα λεπτά δεύτερα δεύτερα λεπτά λεπτά δεύτερα λεπτά λεπτά ώρες 2n 4 δεύτερα 4.27 λεπτά 1.36 αιώνες n! 2 δεύτερα 4.2 ώρες αιώνες αιώνες n2 αιώνες

106 Ερωτήματα - Προβληματισμοί Ακολουθία Fibonacci εάν εάν εάν

107 Ερωτήματα - Προβληματισμοί Ακολουθία Fibonacci Οι αριθμοί Fibonacci αυξάνουν σχεδόν το ίδιο γρήγορα με τις δυνάμεις του 2 Για παράδειγμα: αποτελείται ήδη από 21 ψηφία!!! Γενικά:

108 Ερωτήματα - Προβληματισμοί Ακολουθία Fibonacci Αλγόριθμος Fib1 Fib1(n) if n = 0 then return 0 if n = 1 then return 1 return Fib1(n-1) + Fib1(n-2)

109 Ερωτήματα - Προβληματισμοί Ακολουθία Fibonacci Αλγόριθμος Fib1 Fib1(n) if n = 0 then return 0 if n = 1 then return 1 return Fib1(n-1)+Fib1(n-2) Ερωτήματα Μόνο 3!!! Είναι σωστός; Πόσο χρόνο απαιτεί (ως συνάρτηση του μεγέθους n της εισόδου); Μπορούμε να τον βελτιώσουμε;

110 Ερωτήματα - Προβληματισμοί Ακολουθία Fibonacci Αλγόριθμος Fib1 1. Είναι σωστός; Fib1(n) if n = 0 then return 0 if n = 1 then return 1 return Fib1(n-1)+Fib1(n-2) Ακαδημαϊκή ερώτηση!!! Ο αλγόριθμος Fib1 είναι ακριβώς ο ορισμός του Fibinacci για το Fn!!! Καμία σοβαρή δική μας σκέψη!!!

111 Ερωτήματα - Προβληματισμοί Ακολουθία Fibonacci Αλγόριθμος Fib1 2. Πόσο χρόνο απαιτεί; Fib1(n) if n = 0 then return 0 if n = 1 then return 1 return Fib1(n-1)+Fib1(n-2) Έστω T(n) το πλήθος των υπολογιστικών βημάτων (βασικών πράξεων) που απαιτούνται για τον υπολογισμό της Fib1(n).

112 Ερωτήματα - Προβληματισμοί Ακολουθία Fibonacci Αλγόριθμος Fib1 2. Πόσο χρόνο απαιτεί; Fib1(n) if n = 0 then return 0 if n = 1 then return 1 return Fib1(n-1)+Fib1(n-2)

113 Ερωτήματα - Προβληματισμοί Ακολουθία Fibonacci Αλγόριθμος Fib1 2. Πόσο χρόνο απαιτεί; Fib1(n) if n = 0 then return 0 if n = 1 then return 1 return Fib1(n-1)+Fib1(n-2) Πολύ άσχημα νέα!!! Ο χρόνος εκτέλεσης του αλγόριθμου αυξάνει το ίδιο γρήγορα με τους αριθμούς Fibonacci!!! Εκθετικός ως προς το n

114 Ερωτήματα - Προβληματισμοί Ακολουθία Fibonacci Fib1(n) if n = 0 then return 0 if n = 1 then return 1 return Fib1(n-1)+Fib1(n-2) Αλγόριθμος Fib1 2. Πόσο χρόνο απαιτεί; Τι σημαίνει αυτό?... Πόσο κακός είναι ο Fib1? υπολογιστικά βήματα Earth Simulator της NEC με ταχύτητα 40 τρισεκατομμύρια βήματα/sec Η συνάρτηση Fib1(200) απαιτεί sec!!!

115 Ερωτήματα - Προβληματισμοί Ακολουθία Fibonacci Αλγόριθμος Fib1 2. Πόσο χρόνο απαιτεί; Η συνάρτηση Fib1(200) απαιτεί Fib1(n) if n = 0 then return 0 if n = 1 then return 1 return Fib1(n-1)+Fib1(n-2) sec Εάν ξεκινούσε σήμερα ο υπολογισμός, αυτός θα συνεχιζόταν και μετά την μετατροπή του ήλιου μας σε κόκκινο γίγαντα!!!!

116 Ερωτήματα - Προβληματισμοί Ακολουθία Fibonacci Αλγόριθμος Fib1 Η ταχύτητα των Η/Υ διπλασιάζεται περίπου κάθε 18 μήνες (Νόμος του Moore) Fib1(n) if n = 0 then return 0 if n = 1 then return 1 return Fib1(n-1)+Fib1(n-2) Ίσως τότε ο αλγόριθμος Fib1 να εκτελείται πολύ πιο γρήγορα στους Η/Υ του επόμενου έτους!!! Ο χρόνος εκτέλεσης του Fib1(n) είναι ανάλογος του n (1.6)n Σήμερα το Fib1(100), το επόμενο έτος το Fib1(101), το επόμενο το Fib1(102), Έναν μόνο όρο κάθε έτος!!!

117 Ερωτήματα - Προβληματισμοί Ακολουθία Fibonacci Αλγόριθμος Fib1 Γιατί ο αλγόριθμός μας είναι τόσο αργός? Fib1(n) if n = 0 then return 0 if n = 1 then return 1 return Fib1(n-1)+Fib1(n-2) Πρέπει να τον μελετήσουμε και να απαντήσουμε την ερώτηση!!!?????

118 Ερωτήματα - Προβληματισμοί Ακολουθία Fibonacci Αλγόριθμος Fib1 Fib1(n) if n = 0 then return 0 if n = 1 then return 1 return Fib1(n-1)+Fib1(n-2)

119 Ερωτήματα - Προβληματισμοί Ακολουθία Fibonacci Αλγόριθμος Fib1 Fib1(n) if n = 0 then return 0 if n = 1 then return 1 return Fib1(n-1)+Fib1(n-2)

120 Ερωτήματα - Προβληματισμοί Ακολουθία Fibonacci Αλγόριθμος Fib1 Fib1(n) if n = 0 then return 0 if n = 1 then return 1 return Fib1(n-1)+Fib1(n-2)

121 Ερωτήματα - Προβληματισμοί Ακολουθία Fibonacci Αλγόριθμος Fib1 Fib1(n) if n = 0 then return 0 if n = 1 then return 1 return Fib1(n-1)+Fib1(n-2)

122 Ερωτήματα - Προβληματισμοί Ακολουθία Fibonacci Αλγόριθμος Fib1 3. Μπορούμε να τον βελτιώσουμε; Fib1(n) if n = 0 then return 0 if n = 1 then return 1 return Fib1(n-1)+Fib1(n-2) Ιδέα!!! Να αποθηκεύουμε τα ενδιάμεσα αποτελέσματα!!!

123 Ερωτήματα - Προβληματισμοί Ακολουθία Fibonacci Αλγόριθμος Fib2 Fib2(n) if n = 0 then return 0 Δημιούργησε έναν πίνακα f[0..n] Θέσε f[0] 0 και f[1] 1 for i = 2 to n do f[i] = f[i-1] + f[i-2] return f[n]

124 Ερωτήματα - Προβληματισμοί Ακολουθία Fibonacci Αλγόριθμος Fib2 1. Είναι σωστός; Η ορθότητα προκύπτει άμεσα από τον ορισμό του Fn 2. Fib2(n) if n=0 then return 0 Δημιούργησε έναν πίνακα f[0..n] Θέσε f[0]=0 και f[1]=1 for i=2 to n do f[i]=f[i-1]+f[i-2] return f[n] Πόσο χρόνο απαιτεί; Ο εσωτερικός βρόχος έχει 1 μόνο υπολογιστικό βήμα και εκτελείται n-1 φορές!!! Τώρα με τον Fib2(n) μπορούμε να υπολογίσουμε όχι μόνο τον όρο αλλά και τον!!!

125 Ερωτήματα - Προβληματισμοί Ακολουθία Fibonacci Αλγόριθμος Fib2 3. Μπορούμε να τον βελτιώσουμε; ΝΑΙ!!! Fib2(n) if n=0 then return 0 Δημιούργησε έναν πίνακα f[0..n] Θέσε f[0]=0 και f[1]=1 for i=2 to n do f[i]=f[i-1]+f[i-2] return f[n] Ιδέα!!! Πολλαπλασιασμός Πινάκων!!!! Αλγόριθμος Fib3

126 Σχεδίαση - Ορθότητα - Πολυπλοκότητα Αλγοριθμικές Τεχνικές Σχεδίασης!!! Θεμελιώδη Εργαλεία Αναδρομή (recursion) Διαίρει και κυρίευε (divide and conquer) Απληστία (greedy algorithms) Δυναμικός προγραμματισμός (dynamic programming) Γραμμικός Προγραμματισμός (linear programming) Αναγωγές (reduction)

127 Ευχαριστώ για τη Συμμετοχή σας!!! Σταύρος Δ. Νικολόπουλος Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Ιωαννίνων Webpage:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Εργαστήριο 6: Αναζήτηση, Ανάλυση Πολυπλοκότητας Εργαστήριο 6: Αναζήτηση, Ανάλυση Πολυπλοκότητας Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Αναζήτηση με linearsearch, binarysearch, ternarysearch - Ανάλυση Πολυπλοκότητας ternarysearch

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

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

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

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

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

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

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

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

n ίδια n διαφορετικά n n 0 n n n 1 n n n n 0 4 Διακριτά Μαθηματικά Ι Επαναληπτικό Μάθημα 1 Συνδυαστική 2 Μεταξύ 2n αντικειμένων, τα n είναι ίδια. Βρείτε τον αριθμό των επιλογών n αντικειμένων από αυτά τα 2n αντικείμενα. Μεταξύ 3n + 1 αντικειμένων τα

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

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

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

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

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

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

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

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

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

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

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

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

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

ΚΕΦΑΛΑΙΟ 5: Αλγόριθµοι

ΚΕΦΑΛΑΙΟ 5: Αλγόριθµοι ΚΕΦΑΛΑΙΟ 5: Αλγόριθµοι 5.1 Η έννοια του αλγορίθµου 5.2 Αναπαράσταση αλγορίθµων 5.3 Επινόηση αλγορίθµων 5.4 Δοµές επανάληψης 5.5 Αναδροµικές δοµές 1 Αλγόριθµος: Ορισµός Ένας αλγόριθµος είναι ένα διατεταγµένο

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

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

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

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

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

Αριθμοθεωρητικοί Αλγόριθμοι Αλγόριθμοι που επεξεργάζονται μεγάλους ακέραιους αριθμούς Μέγεθος εισόδου: Αριθμός bits που απαιτούνται για την αναπαράσταση των ακεραίων. Έστω ότι ένας αλγόριθμος λαμβάνει ως είσοδο έναν ακέραιο Ο αλγόριθμος

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

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

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

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

Θεωρία Υπολογισµού Theory of Computation

Θεωρία Υπολογισµού Theory of Computation 1 ο µέρος Θεωρία Υπολογισµού Theory of Computation 1 Υπολογισιµότητα - Computability o Υπολογισιµότητα (Computability) n Τι µπορεί να υπολογιστεί και τι όχι; o Υπολογιστική πολυπλοκότητα (Computational

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Σχεδίαση και Ανάλυση Αλγορίθμων Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 1.0 Εισαγωγή στις Βασικές Έννοιες του Μαθήματος Απαιτήσεις Μαθήματος και Εργαστηρίου Περιήγηση στις Βασικές Έννοιες του Μαθήματος Σταύρος Δ. Νικολόπουλος 2016-17

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

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

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

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

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

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

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

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

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

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

Κατώτερα φράγματα Κατώτερο φράγμα: εκτίμηση της ελάχιστης εργασίας που απαιτείται για την επίλυση ενός προβλήματος. Παραδείγματα: Αριθμός συγκρίσεων π

Κατώτερα φράγματα Κατώτερο φράγμα: εκτίμηση της ελάχιστης εργασίας που απαιτείται για την επίλυση ενός προβλήματος. Παραδείγματα: Αριθμός συγκρίσεων π Περιορισμοί Αλγοριθμικής Ισχύος Κατηγοριοποίηση πολυπλοκοτήτων Κατώτερα φράγματα Κατώτερο φράγμα: εκτίμηση της ελάχιστης εργασίας που απαιτείται για την επίλυση ενός προβλήματος. Παραδείγματα: Αριθμός

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ταξινόμηση κάδου και ταξινόμηση Ρίζας Bucket-Sort και Radix-Sort

Ταξινόμηση κάδου και ταξινόμηση Ρίζας Bucket-Sort και Radix-Sort Ταξινόμηση κάδου και ταξινόμηση Ρίζας Bucket-Sort και Radix-Sort 1, c 3, a 3, b 7, d 7, g 7, e B 0 1 3 4 5 6 7 8 9 1 BucketSort (Ταξινόμηση Κάδου) - Αρχικά θεωρείται ένα κριτήριο κατανομής με βάση το οποίο

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