ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ
|
|
- Ἑκάβη Δασκαλοπούλου
- 7 χρόνια πριν
- Προβολές:
Transcript
1 ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ Ενότητα 1: Εισαγωγή Μαρία Σατρατζέμη Τμήμα Εφαρμοσμένης Πληροφορικής
2 Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς. ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ Μαρία Σατρατζέμη 2
3 Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο Πανεπιστήμιο Μακεδονίας» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ Μαρία Σατρατζέμη 3
4 0. Εισαγωγή Αντικείμενο μαθήματος: Η θεωρητική μελέτη ανάλυσης των αλγορίθμων. Στόχος: επιδόσεις των επαναληπτικών και αναδρομικών αλγορίθμων. Ανάλυση: προβλέπει το κόστος ενός αλγορίθμου σε σχέση με τους πόρους και την εκτέλεση/επίδοση. (Σχεδίαση: ανάπτυξη τεχνικών με στόχο την ελάττωση του κόστους) 4
5 0.1 Αλγόριθμος Αλγόριθμος = καλά ορισμένη υπολογιστική διαδικασία που δέχεται κάποια τιμή ή κάποιο σύνολο τιμών ως είσοδο και δίνει κάποια τιμή ή κάποιο σύνολο τιμών ως έξοδο. μια ακολουθία υπολογιστικών βημάτων που μετασχηματίζει την είσοδο σε έξοδο. Υπολογιστικό πρόβλημα: Ταξινόμηση Είσοδος: μια ακολουθία n αριθμών <a 1,,a n > Έξοδος: μια αναδιάταξη <a 1,,a n > της ακολουθίας εισόδου τέτοια, ώστε a 1 a n. Στιγμιότυπο προβλήματος = η είσοδος η οποία απαιτείται για να υπολογιστεί μια λύση του προβλήματος και που ικανοποιεί όλους τους περιορισμούς που επιβάλλει η διατύπωση του προβλήματος. Για παράδειγμα, ένα στιγμιότυπο του προβλήματος ταξινόμησης είναι η ακολουθία <10,4,5,2,15,7> και ένας αλγόριθμος ταξινόμησης επιστρέφει ως έξοδο την ακολουθία <2,4,5,7,10,15>. 5
6 Έχουν αναπτυχθεί διάφοροι αλγόριθμοι ταξινόμησης. Ποιος είναι ο πιο κατάλληλος; Είναι όλοι τους ορθοί; Υπάρχει κάποιος καλύτερος; Το ποιος είναι ο πιο κατάλληλος εξαρτάται από διάφορους παράγοντες αντικείμενο του μαθήματος. Ένας αλγόριθμος χαρακτηρίζεται ορθός αν για κάθε στιγμιότυπο εισόδου τερματίζει δίνοντας την ορθή έξοδο. Αν υπάρχει κάποιος καλύτερος αντικείμενο έρευνας. Επειδή ο υπολογιστικός χρόνος στους υπολογιστές είναι ένας πεπερασμένος πόρος, όπως και η μνήμη, αναζητούμε αλγορίθμους που είναι δραστικοί (αποδοτικοί) ως προς τον χρόνο και οικονομικοί ως προς τον χώρο. Συχνά για το ίδιο πρόβλημα έχουμε αλγορίθμους που διαφέρουν συντριπτικά ως προς την δραστικότητα, και οι διαφορές αυτές μπορεί να είναι πολύ πιο σημαντικές από εκείνες που οφείλονται στο υλικό του υπολογιστή και το λογισμικό. 6
7 Για παράδειγμα, έχουμε δύο αλγορίθμους (μεταξύ άλλων) ταξινόμησης: 1. ταξινόμηση με ένθεση (insert sort) 2. ταξινόμηση με συγχώνευση (merge sort) Ο 1 ος απαιτεί χρόνο c 1 n 2 για την ταξινόμηση n στοιχείων. Ο 2 ος απαιτεί χρόνο c 2 n lgn για την ταξινόμηση n στοιχείων (c 1 <c 2 ) Από την ανάλυση προκύπτει ότι από κάποια τιμή του n και μετά η ταξινόμηση με συγχώνευση θα είναι ταχύτερη. Γενικά, όσο αυξάνεται το μέγεθος του προβλήματος, τόσο αυξάνεται και το συγκριτικό πλεονέκτημα του 2 ου αλγορίθμου (βλ. CLRS σελ (Ελλ.εκδ.) ή 12-13(Αγγ.εκδ.) 7
8 0.2 Ανάλυση Αλγορίθμων Ο όρος ανάλυση ενός αλγορίθμου αναφέρεται στην πρόβλεψη των πόρων που απαιτεί η εκτέλεση του αλγορίθμου. Τις περισσότερες φορές η ποσότητα που θέλουμε να μετρήσουμε είναι ο υπολογιστικός χρόνος. Γενικά αναλύοντας διάφορους υποψήφιους αλγορίθμους για ένα πρόβλημα, μπορούμε να εντοπίσουμε τον πλέον δραστικό. Προκειμένου να αναλύσουμε έναν αλγόριθμο θα θεωρήσουμε το μοντέλο της μηχανής άμεσης ή τυχαίας προσπέλασης (Random Access Machine - RAM) με έναν επεξεργαστή όπου οι εντολές εκτελούνται ακολουθιακά (η μία κατόπιν της άλλης), δηλ. δεν υπάρχουν πράξεις που να εκτελούνται ταυτόχρονα. Το μοντέλο RAM περιλαμβάνει εντολές οι οποίες υπάρχουν σε όλους τους πραγματικούς υπολογιστές:
9 αριθμητικές πράξεις (πρόσθεση, αφαίρεση, πολλαπλασιασμός, διαίρεση, υπόλοιπο, ακέραιο μέρος) εντολές μεταφοράς δεδομένων (ανάκληση, αποθήκευση, αντιγραφή) εντολές ελέγχου (διακλάδωση υπό συνθήκη και άνευ συνθήκης, κλήση υποπρογράμματος και επιστροφή) Όλες αυτές οι εντολές απαιτούν κάποιον σταθερό χρόνο για την εκτέλεσή τους. Ο χρόνος εκτέλεσης εξαρτάται από τα δεδομένα εισόδου. Γενικά, ο απαιτούμενος χρόνος αυξάνεται καθώς αυξάνεται το μέγεθος της εισόδου και γι αυτό συνηθίζεται να εκφράζουμε τον χρόνο εκτέλεσης ενός προγράμματος ως συνάρτηση του μεγέθους της εισόδου. Είναι αναγκαίο να διευκρινίσουμε τους όρους χρόνος εκτέλεσης και μέγεθος εισόδου. Το ποιο είναι το καταλληλότερο μέτρο για το μέγεθος εισόδου εξαρτάται από το πρόβλημα. Σε κάθε πρόβλημα που εξετάζουμε πρέπει να δηλώνουμε ρητά ποιο μέτρο χρησιμοποιούμε για το μέγεθος της εισόδου. 9
10 Για πολλά προβλήματα, όπως π.χ. η ταξινόμηση, το μέτρο θα είναι το πλήθος των στοιχείων της εισόδου. Για άλλα προβλήματα, όπως π.χ. ο πολ/σιασμός δύο ακεραίων, το μέτρο θα είναι το συνολικό πλήθος bit που απαιτούνται για την αναπαράσταση της εισόδου στο δυαδικό σύστημα. Ενίοτε είναι ενδεδειγμένο να περιγράφουμε το μέγεθος της εισόδου με δύο αριθμούς, όπως για παράδειγμα, όταν η είσοδος είναι ένας γράφος (πλήθος κόμβων, πλήθος ακμών). Ο χρόνος εκτέλεσης ενός αλγορίθμου για δεδομένη είσοδο είναι το πλήθος των στοιχειωδών πράξεων ή βημάτων που εκτελούνται, όπου το βήμα πρέπει να ορίζεται έτσι ώστε να είναι κατά το δυνατόν πιο ανεξάρτητο από τον τύπο της μηχανής. Θα κάνουμε την παραδοχή (συμβατή με το μοντέλο RAM) ότι ο χρόνος εκτέλεσης για κάθε γραμμή του ψευδοκώδικά μας είναι σταθερός και αν και η μια γραμμή μπορεί να απαιτεί διαφορετικό χρόνο από την άλλη, θα υποθέσουμε ότι κάθε εκτέλεση της i-οστής γραμμής απαιτεί χρόνο c i, όπου c i = σταθ. 10
11 0.3 Περιπτώσεις ανάλυσης Χειρότερης περίπτωσης: (συνήθως) T(n) = μέγιστος χρόνος εκτέλεσης του αλγορίθμου για οποιαδήποτε είσοδο μεγέθους n. Μέσης περίπτωσης: (μερικές φορές) T(n) = αναμενόμενος χρόνος εκτέλεσης αλγορίθμου επί όλων των εισόδων μεγέθους n. Χρειαζόμαστε υπόθεση της κατανομής (στατιστικής) των εισόδων. 11
12 0.4 Σχεδίαση Αλγορίθμων Πώς σχεδιάζουμε έναν αλγόριθμο για να λύσουμε ένα δεδομένο πρόβλημα; Είναι αντικείμενο του μαθήματος «Σχεδίαση Αλγορίθμων» το να μάθουμε διάφορες γενικές τεχνικές σχεδίασης. Τι είναι μια τεχνική σχεδίασης αλγορίθμου; είναι μια γενική προσέγγιση επίλυσης προβλημάτων αλγοριθμικά, η οποία είναι εφαρμόσιμη σε μια ποικιλία προβλημάτων από διάφορες περιοχές των υπολογισμών. Χαρακτηριστικό παράδειγμα: Διαίρει και Βασίλευε (Divide and Conquer) 12
13 0.5 Σημαντικοί Τύποι Προβλημάτων Ταξινόμηση (sorting) Αναζήτηση (searching) Επεξεργασία συμβολοσειρών (String processing). Προβλήματα γράφων Συνδυαστικά προβλήματα Γεωμετρικά προβλήματα Αριθμητικά προβλήματα Αριθμητική μεγάλων ακεραίων 13
14 1. Ένα Λεπτομερές μοντέλο του Υπολογιστή Περιγράφουμε ένα λεπτομερές μοντέλο των επιδόσεων του χρόνου εκτέλεσης ενός προγράμματος πχ σε C ή σε C++, το οποίο είναι ανεξάρτητο από το υλικό και το λογισμικό του συστήματος. Αντί να αναλύσουμε τις επιδόσεις μιας συγκεκριμένης αλλά αυθαίρετα επιλεγμένης φυσικής μηχανής, θεωρούμε την υλοποίηση της γλώσσας προγραμματισμού C ή C++ ως ένα είδος «εικονικής μηχανήςc++» (βλ. διπλανή εικόνα) 14
15 1.1 Οι Βασικές Παραδοχές (1) Παραδοχή 1. Ο χρόνος που απαιτείται για την ανάκληση (fetch) ενός ακέραιου τελεστέου από τη μνήμη είναι μια σταθερά, τ fetch, και ο χρόνος που απαιτείται για την αποθήκευση ενός ακεραίου (αποτελέσματος) στη μνήμη είναι μια σταθερά τ store. Σύμφωνα με την Παραδοχή 1 η εντολή ανάθεσης y = x; έχει χρόνο εκτέλεσης τ fetch + τ store. (Ο χρόνος που απαιτείται για την ανάκληση της τιμής της μεταβλητής x είναι τ fetch και ο χρόνος που απαιτείται για την αποθήκευση της τιμής στη μεταβλητή y είναι τ store ). Εφαρμόζουμε την Παραδοχή 1 και για τις σταθερές. Π.χ. η εντολή ανάθεσης y = 1; έχει επίσης χρόνο εκτέλεσης τ fetch + τ store, αφού η σταθερά θα πρέπει να είναι αποθηκευμένη στη μνήμη και είναι φυσικό να περιμένουμε ότι το κόστος ανάκλησής της είναι το ίδιο με αυτό της ανάκλησης οποιουδήποτε άλλου τελεστέου. 15
16 Οι Βασικές Παραδοχές (2) Παραδοχή 2. Οι χρόνοι που απαιτούνται για την εκτέλεση στοιχειωδών πράξεων με ακεραίους, όπως είναι η πρόσθεση, η αφαίρεση, ο πολλαπλασιασμός, η διαίρεση και η σύγκριση, είναι όλοι σταθεροί. Τους συμβολίζουμε με τ +, τ -, τ, τ και τ <, αντίστοιχα. Σύμφωνα με την Παραδοχή 2 όλες οι απλές πράξεις με ακεραίους μπορούν να γίνουν σε σταθερό χρόνο. Για να είναι κάτι τέτοιο εφικτό θα πρέπει το πλήθος των bit που χρησιμοποιούνται για την αναπαράσταση των αριθμών να είναι συγκεκριμένο (σταθερό). Συνήθως το πλήθος αυτό είναι μεταξύ 16 και 64. Επειδή ακριβώς το πλήθος των bit που χρησιμοποιούνται είναι σταθερό, μπορούμε να πούμε ότι οι χρόνοι εκτέλεσης είναι επίσης σταθεροί. Αν επιτρέπονται οσοδήποτε μεγάλοι ακέραιοι, τότε οι βασικές αριθμητικές πράξεις μπορεί να απαιτούν ένα οσοδήποτε μεγάλο χρονικό διάστημα. 16
17 Παράδειγμα Εφαρμόζοντας τις Παραδοχές 1 και 2 μπορούμε να προσδιορίσουμε ότι ο χρόνος εκτέλεσης μιας εντολής όπως η y = y + 1; είναι 2τ fetch + τ + + τ store, αφού πρέπει να ανακληθούν δύο τελεστέοι, οι y και 1, να προστεθούν και να αποθηκευτεί το αποτέλεσμα πάλι στην y. Η σύνταξη της C παρέχει και άλλους τρόπους έκφρασης της παραπάνω εντολής: y += 1; ++y; y++; Θα υποθέσουμε ότι αυτοί οι εναλλακτικοί τρόποι απαιτούν ακριβώς τον ίδιο χρόνο εκτέλεσης με αυτόν της παραπάνω αρχικής εντολής. 17
18 Οι Βασικές Παραδοχές (3) Παραδοχή 3. Ο χρόνος που απαιτείται για την κλήση μιας συνάρτησης είναι μια σταθερά, τ call, και ο χρόνος που απαιτείται για την επιστροφή από μια συνάρτηση είναι μια σταθερά, τ return. Εννοείται ότι η Παραδοχή 3 δεν αναφέρεται στον χρόνο εκτέλεσης που απαιτείται από τους υπολογισμούς που γίνονται στην ίδια τη συνάρτηση πριν επιστρέψει το αποτέλεσμα. Παραδοχή 4. Ο χρόνος που απαιτείται για το πέρασμα ενός (ακέραιου) ορίσματος σε μια συνάρτηση ή διαδικασία είναι ο ίδιος με τον χρόνο που απαιτείται για την αποθήκευση ενός ακεραίου στη μνήμη. Ο λόγος είναι ότι το πέρασμα ενός ορίσματος εννοιολογικά είναι το ίδιο με την ανάθεση της τιμής της πραγματικής παραμέτρου στην τυπική παράμετρο της συνάρτησης. Σύμφωνα με την Παραδοχή 4, ο χρόνος εκτέλεσης της εντολής y = f(x); θα είναι τ fetch + 2τ store + τ call + T f(x), όπου είναι ο χρόνος εκτέλεσης της συνάρτησης για την είσοδο x. H πρώτη από τις δύο αποθηκεύσεις οφείλεται στο πέρασμα της παραμέτρου x στη συνάρτηση f και η δεύτερη προκύπτει από την ανάθεση στη μεταβλητή y. 18
19 1.2 Παράδειγμα άθροισμα Α.Π (1) Εφαρμογή των Παραδοχών 1, 2 και 3 στην ανάλυση του χρόνου εκτέλεσης ενός προγράμματος για τον υπολογισμό του αθροίσματος n i 1 i που είναι το άθροισμα των n όρων της Αριθμητικής Προόδου με πρώτο όρο α 1 = 1 και διαφορά ω = int Sum (int n) 2. { 3. int result = 0; 4. for (int i = 1; i <= n; ++i) 5. result += i; 6. return result; 7. } Οι εκτελέσιμες εντολές στο Πρόγραμμα 1.1 περιλαμβάνονται στις γραμμές 3-6. Στον Πίνακα 1.1 δίνονται οι χρόνοι εκτέλεσης κάθε μίας απ αυτές τις εντολές: 19
20 Παράδειγμα άθροισμα Α.Π (2) Η εντολή for στη γραμμή 4 παρουσιάζεται σε τρεις γραμμές διότι αναλύουμε τον χρόνο εκτέλεσης καθενός από τα στοιχεία μιας εντολής for χωριστά. Το 1 ο στοιχείο, ο κώδικας αρχικοποίησης, εκτελείται μία φορά πριν την πρώτη επανάληψη του βρόχου. Το 2 ο στοιχείο, ο έλεγχος τερματισμού βρόχου, εκτελείται πριν αρχίσει η κάθε μια επανάληψη του βρόχου. Συνολικά ο αριθμός των εκτελέσεων του ελέγχου τερματισμού είναι μία παραπάνω από τον αριθμό των εκτελέσεων του σώματος του βρόχου. Το 3 ο τελικά στοιχείο, το βήμα αύξησης του μετρητή βρόχου, εκτελείται μία φορά ανά επανάληψη του βρόχου. 1. int Sum (int n) 2. { 3. int result = 0; 4. for (int i = 1; i <= n; ++i) 5. result += i; 6. return result; 7. } 20
21 Παράδειγμα άθροισμα Α.Π (3) Αθροίζοντας τις καταχωρήσεις του Πιν. 1.1 προκύπτει ότι ο χρόνος εκτέλεσης, T(n), για το Πρόγραμμα 1.1, είναι όπου T(n) = t 1 + t 2 n (1.1) t 1 = 5τ fetch + 2τ store + τ < + τ return t 2 = 6τ fetch + 2τ store + τ < + 2τ return 21
22 1.3 Πράξεις δεικτοδότησης Γενικά, τα στοιχεία μιας μονοδιάστατης συστοιχίας (array) αποθηκεύονται σε διαδοχικές θέσεις της μνήμης. Επομένως δοθείσης της διεύθυνσης του 1 ου στοιχείου της συστοιχίας, μια απλή πρόσθεση αρκεί για τον προσδιορισμό της διεύθυνσης του οποιουδήποτε στοιχείου της συστοιχίας. Παραδοχή 5. Ο χρόνος που απαιτείται για τον υπολογισμό της διεύθυνσης που προκύπτει από μια πράξη δεικτοδότησης συστοιχίας, π.χ. a[i], είναι μια σταθερά τ [ ]. Ο χρόνος αυτός δεν συμπεριλαμβάνει τον χρόνο για τον υπολογισμό της έκφρασης δείκτη ούτε τον χρόνο για την προσπέλαση (δηλ. ανάκληση ή αποθήκευση) του στοιχείου της συστοιχίας. Εφαρμόζοντας την Παραδοχή 5 μπορούμε να προσδιορίσουμε ότι ο χρόνος εκτέλεσης της εντολής y = a[i]; είναι 3τ fetch + τ [ ] + τ store. Απαιτούνται τρεις ανακλήσεις τελεστέων: η 1 η είναι για την ανάκληση της a, της διεύθυνσης βάσης της συστοιχίας η 2 η για την ανάκληση του i, του δείκτη μέσα στη συστοιχία και η 3 η για την ανάκληση του στοιχείου a[i] της συστοιχίας. 22
23 1.4 Παράδειγμα Κανόνας του Horner (1) Εφαρμογή των Παραδοχών 1, 2, 3 και 4 στην ανάλυση του χρόνου εκτέλεσης ενός προγράμματος που υπολογίζει την τιμή ενός πολυωνύμου. Δηλ. δοθέντων των n + 1 συντελεστών a 0, a 1,, a n και της τιμής x, n υπολογίζει το άθροισμα i ax i 0 i Ένας γνωστός τρόπος υπολογισμού είναι ο κανόνας του Horner που είναι στην ουσία ένας αλγόριθμος για τον υπολογισμό του αθροίσματος χωρίς να απαιτείται ο υπολογισμός οποιασδήποτε δύναμης του x. 1. int Horner (int a[], int n, int x) 2. { 3. int result = a[n]; 4. for ( int i = n - 1; i >= 0; --i ) 5. result = result * x + a[i]; 6. return result; 7. } 23
24 Παράδειγμα Κανόνας του Horner (2) Ο χρόνος εκτέλεσης των εκτελέσιμων εντολών του Προγράμματος 1.2 δίνεται στον Πιν. 1.2: Ο χρόνος εκτέλεσης T(n) προκύπτει ότι είναι T(n) = t 1 + t 2 n (1.2) όπου t 1 = 8τ fetch + 2τ store + τ [ ] + τ + τ < + τ return t 2 = 9τ fetch + 2τ store + τ < + τ [ ] + τ + + τ + τ 24
25 1.5 Ανάλυση Αναδρομικών Προγραμμάτων (1) Ανάλυση της επίδοσης ενός αναδρομικού αλγορίθμου που υπολογίζει το παραγοντικό ενός ακεραίου. Υπενθυμίζουμε ότι το παραγοντικό ενός μη αρνητικού ακεραίου n, συμβολικά n!, ορίζεται ως 1, n 0 n! i, n 0 Μπορούμε όμως να ορίσουμε το παραγοντικό αναδρομικά: Με βάση τον ορισμό αυτό οδηγούμαστε στον αλγόριθμο που δίνεται στο Πρόγραμμα 1.3 για τον υπολογισμό του παραγοντικού του φυσικού αριθμού n. Στον Πίν. 1.3 δίνονται οι χρόνοι εκτέλεσης των εκτελέσιμων εντολών του προγράμματος. n i 1 1, n 0 n! n n 1!, n 0 25
26 Ανάλυση Αναδρομικών Προγραμμάτων (2) 1. int Factorial (int n) 2. { 3. if (n = = 0) 4. return 1; 5. else 6. return n * Factorial (n 1); 7. } 26
27 Ανάλυση Αναδρομικών Προγραμμάτων (3) Είχαμε να αναλύσουμε τον χρόνο εκτέλεσης των δύο πιθανών αποτελεσμάτων του ελέγχου συνθήκης στη γραμμή 3 χωριστά. Είναι φανερό ότι ο χρόνος εκτέλεσης του προγράμματος εξαρτάται από το αποτέλεσμα αυτού του ελέγχου. Επιπρόσθετα, η συνάρτηση Factorial καλεί τον εαυτό της αναδρομικά στη γραμμή 6. Επομένως, για να γράψουμε τον χρόνο εκτέλεσης της γραμμής 6 πρέπει να γνωρίζουμε τον χρόνο εκτέλεσης της Τ( ) της Factorial. Αλλά αυτό είναι ακριβώς που προσπαθούμε να προσδιορίσουμε από την αρχή. Υποθέτουμε λοιπόν ότι γνωρίζουμε ήδη ποια είναι η συνάρτηση Τ( ) και ότι μπορούμε να κάνουμε χρήση αυτής της συνάρτησης για τον προσδιορισμό του χρόνου εκτέλεσης της γραμμής 6. Αθροίζοντας τις στήλες του Πιν. 1.3 παίρνουμε ότι ο χρόνος εκτέλεσης για το Πρόγραμμα 1.3 είναι t1, n 0 T n (1.4) T n 1 t2, n 0 όπου t 1 = 3τ fetch + τ < + τ return 1. int Factorial (int n) 2. { 3. if (n = = 0) 4. return 1; 5. else 6. return n * Factorial (n 1); 7. } t 2 = 5τ fetch + τ < + τ + τ store + τ + τ call + τ return 27
28 Ανάλυση Αναδρομικών Συναρτήσεων (4) H (1.4) είναι μια αναδρομική σχέση επειδή η συνάρτηση ορίζεται συναρτήσει του εαυτού της αναδρομικά. Επίλυση αναδρομικών σχέσεων (σε επόμενη διάλεξη) Η επίλυση της (1.4) μας δίνει T(n) = t 1 + t 2 n όπου t 1 και t 2 οι σταθερές που έχουμε αναφέρει στην προηγούμενη διαφάνεια. 28
29 2. Απλοποιημένο μοντέλο του υπολογιστή Το λεπτομερές μοντέλο του υπολογιστή που χρησιμοποιήσαμε στην προηγούμενη ενότητα έχει πολλές παραμέτρους χρονομέτρησης: τ fetch, τ store, τ +, τ -, τ, τ, τ <, τ call, τ return και τ [ ]. Είναι αρκετά επίπονο να παρακολουθούμε κατά την ανάλυση όλες τις παραμέτρους. Σε μια πραγματική μηχανή κάθε μία απ αυτές τις παραμέτρους είναι ένα πολλαπλάσιο της περιόδου του ρολογιού της μηχανής, kt. To απλοποιημένο μοντέλο απαλείφει όλες αυτές τις παραμέτρους: όλες οι παράμετροι χρονομέτρησης εκφράζονται σε κύκλους ρολογιού. Ουσιαστικά, T = 1. H σταθερά k για όλες τις παραμέτρους χρονομέτρησης υποθέτουμε ότι είναι η ίδια: k = 1. Το αποτέλεσμα αυτών των δύο υποθέσεων είναι ότι δεν χρειάζεται να διαχωρίζουμε τις διάφορες πράξεις. Για τον προσδιορισμό του χρόνου εκτέλεσης ενός προγράμματος απλά μετράμε τον συνολικό αριθμό των κύκλων που πραγματοποιούνται. 29
30 2.1 Παράδειγμα Άθροισμα δυναμοσειράς (Ι.1) Θεωρούμε το πρόβλημα του χρόνου εκτέλεσης ενός προγράμματος για τον υπολογισμό της ακόλουθης δυναμοσειράς: δοθείσης μιας τιμής x και ενός μη αρνητικού ακεραίου n, θέλουμε να υπολογίσουμε το άθροισμα n i 0 x Ένας αλγόριθμος υπολογισμού του αθροίσματος δίνεται στο Προγ i 1. int GeometricalSeriesSum (int x, int n) 2. { 3. int sum = 0; 4. for (int i = 0; i <= n; ++i) 5. { 6. int prod = 1; 7. for (int j = 0; j < i; ++j) 8. prod *= x; 9. sum += prod; 10. } 11. return sum; 12.} 30
31 Παράδειγμα Άθροισμα δυναμοσειράς (Ι.2) Ο Πιν. 2.5 παρουσιάζει τον χρόνο εκτέλεσης, όπως προβλέπεται με το απλοποιημένο μοντέλο, για κάθε μία από τις εκτελέσιμες εντολές του Προγ int GeometricalSeriesSum (int x, int n) 2. { 3. int sum = 0; 4. for (int i = 0; i <= n; ++i) 5. { 6. int prod = 1; 7. for (int j = 0; j < i; ++j) 8. prod *= x; 9. sum += prod; 10. } 11. return sum; 12. } 31
32 Παράδειγμα Άθροισμα δυναμοσειράς (Ι.3) Για να υπολογίσουμε τον συνολικό αριθμό κύκλων πρέπει να υπολογίσουμε τα δύο αθροίσματα τα οποία είναι αθροίσματα n + 1 όρων μιας Αριθμητικής Προόδου και υπολογίζονται με βάση τον τύπο και Χρησιμοποιώντας αυτόν τον τύπο μπορούμε να αθροίσουμε το πλήθος των κύκλων που δίνονται στον Πιν. 2.5 και να βρούμε τελικά ότι ο συνολικός χρόνος εκτέλεσης είναι 32
33 2.2 Παράδειγμα Άθροισμα δυναμοσειράς (ΙΙ.1) Μπορούμε να δούμε το προηγούμενο πρόβλημα υπολογισμού του αθροίσματος της δυναμοσειράς ως πρόβλημα υπολογισμού της τιμής ενός πολυωνύμου του οποίου όλοι οι συντελεστές είναι ίσοι με 1. Έτσι θα μπορούσαμε να χρησιμοποιήσουμε τον κανόνα του Horner που είδαμε στην ενότητα Ένας αλγόριθμος βασισμένος σ αυτή την ιδέα παρουσιάζεται στο Προγ int GeometricalSeriesSum (int x, int n) 2. { 3. int sum = 0; 4. for (int i = 0; i <= n; ++i) 5. sum = sum * x + 1; 6. return sum; 7. } Οι εκτελέσιμες εντολές του Προγ. 2.6 συνιστούν τις γραμμές 3-6. Ο Πιν. 2.6 παρουσιάζει τους χρόνους εκτέλεσης, σύμφωνα με το απλοποιημένο μοντέλο, για κάθε μία από τις εντολές αυτές. 33
34 Παράδειγμα Άθροισμα δυναμοσειράς (ΙΙ.2) 1. int GeometricalSeriesSum (int x, int n) 2. { 3. int sum = 0; 4. for (int i = 0; i <= n; ++i) 5. sum = sum * x + 1; 6. return sum; 7. } Στα Προγράμματα 2.5 και 2.6 έχουμε δύο διαφορετικούς αλγόριθμους για τον υπολογισμό του ίδιου αθροίσματος μιας δυναμοσειράς. Ο χρόνος εκτέλεσης του πρώτου είναι (11/2)n 2 + (47/2)n + 27 κύκλοι και του δεύτερου 13n + 22 κύκλοι. Επειδή (11/2)n 2 + (47/2)n + 27 > 13n + 22 για κάθε n, μπορούμε να πούμε ότι, σύμφωνα με το απλοποιημένο μοντέλο του υπολογιστή, το Προγ. 2.6 που χρησιμοποιεί τον κανόνα του Horner εκτελείται πάντα πιο γρήγορα από το Προγ
35 Παράδειγμα: Ταξινόμηση με ένθεση (εισαγωγή)
36 Παράδειγμα: Ταξινόμηση με ένθεση InsertionSort(A, n) { for j = 2 to n { key = A[j] i = j - 1; while (i > 0) and (A[i] > key) { A[i+1] = A[i] i = i - 1 } A[i+1] = key } } Πόσες φορές θα εκτελεστεί αυτός ο βρόχος; 36
37 Παράδειγμα: Ταξινόμηση με ένθεση 37
38 Ανάλυση του InsertionSort T(n) = c 1 n + c 2 (n-1) + c 3 (n-1) + c 4 T + c 5 (T - (n-1)) + c 6 (T - (n-1)) + + c 7 (n-1) = c 8 T + c 9 n + c 10 Τι μπορεί να είναι το T; Καλύτερη περίπτωση η είσοδος είναι ήδη ταξινομημένη, οπότε το σώμα του εσωτερικού βρόχου δεν εκτελείται ποτέ t j = 1 T(n) είναι μια γραμμική συνάρτηση Χειρότερη περίπτωση η είσοδος είναι ταξινομημένη αντίστροφα, οπότε το σώμα του εσωτερικού βρόχου εκτελείται για όλα τα προηγούμενα στοιχεία t j = j T(n) είναι μια τετραγωνική συνάρτηση Μέση περίπτωση Κατά μέσο όρο θα πρέπει να ελέγξουμε τα μισά στοιχεία της Α[1..j 1] t j = j/2 T(n) είναι μια τετραγωνική συνάρτηση. 38
39 n j 2 Ταξινόμηση με εισαγωγή: Χρονική πολυπλοκότητα ( n) n 2 ( t t 1 t 1) 1 j j j n n 1 3t j 2 n n 1 3 t n j 2 Αλγόριθμος InsertionSort(A[1..n]) Είσοδος: A[1..n] μια συστοιχία n αριθμών Έξοδος: A[1..n] μια συστοιχία n αριθμών ταξινομημένη 1. for j 2.. n // η A[1..j 1] είναι ταξινομημένη, η A[j..n] είναι ανέγγιχτη. // ενθέτουμε το A[j] στην ταξινομημένη ακολουθίαa[1..j 1] 2. key A[j] 3. i j 1 4. while i > 0 and A[i] > key 5. A[i+1] A[i] 6. i i 1 7. A[i+1] key 2n 1 3 j Χειρότερη περίπτωση: t j επαναλήψεις (συστοιχία ταξινομημένη 3 7 n n 4 n 2 2 j j n j n n nn 1 j j j 2 j 1 j με αντίστροφη σειρά). 39
40 Βιβλιογραφία T. Cormen, C. Leiserson, R. Rivest, C. Stein, Εισαγωγή στους αλγορίθμους B.R. Preiss, Data Structures and Algorithms with Object-Oriented Design Patterns in C++ A. Aho J. Ullman, O Χρόνος Εκτέλεσης Προγραμμάτων 40
41 Τέλος Ενότητας
Εισαγωγή στην Ανάλυση Αλγορίθμων (1) Διαφάνειες του Γ. Χ. Στεφανίδη
Εισαγωγή στην Ανάλυση Αλγορίθμων (1) Διαφάνειες του Γ. Χ. Στεφανίδη 0. Εισαγωγή Αντικείμενο μαθήματος: Η θεωρητική μελέτη ανάλυσης των αλγορίθμων. Στόχος: επιδόσεις των επαναληπτικών και αναδρομικών αλγορίθμων.
Διαβάστε περισσότεραΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ
ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ Ενότητα 3: Ασυμπτωτικός συμβολισμός Μαρία Σατρατζέμη Τμήμα Εφαρμοσμένης Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.
Διαβάστε περισσότεραΕισαγωγή στην Ανάλυση Αλγορίθμων (2-3)
Εισαγωγή στην Ανάλυση Αλγορίθμων (2-3) 3.1 Ασυμπτωτικός συμβολισμός (Ι) Οι ορισμοί που ακολουθούν μας επιτρέπουν να επιχειρηματολογούμε με ακρίβεια για την ασυμπτωτική συμπεριφορά. Οι f(n) και g(n) συμβολίζουν
Διαβάστε περισσότεραΤίτλος Μαθήματος: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ
Τίτλος Μαθήματος: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ Ενότητα 5: Ασκήσεις Μαρία Σατρατζέμη Τμήμα Εφαρμοσμένης Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.
Διαβάστε περισσότεραΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ
ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ Ενότητα 13: Αλγόριθμοι-Μεγάλων ακεραίων- Εκθετοποίηση- Πολλαπλασιασμός πινάκων -Strassen Μαρία Σατρατζέμη Τμήμα Εφαρμοσμένης Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό
Διαβάστε περισσότεραΥπολογιστικά & Διακριτά Μαθηματικά
Υπολογιστικά & Διακριτά Μαθηματικά Ενότητα 5: Αναδρομικές σχέσεις - Υπολογισμός Αθροισμάτων Στεφανίδης Γεώργιος Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για
Διαβάστε περισσότεραΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ
ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ Ενότητα 4: Αναδρομικές σχέσεις και ανάλυση αλγορίθμων Μαρία Σατρατζέμη Τμήμα Εφαρμοσμένης Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης
Διαβάστε περισσότεραΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ
ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ Ενότητα 8β: Ταξινόμηση-Ταξινόμηση του Shell Μαρία Σατρατζέμη Τμήμα Εφαρμοσμένης Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative
Διαβάστε περισσότεραεισαγωγικές έννοιες Παύλος Εφραιμίδης Δομές Δεδομένων και
Παύλος Εφραιμίδης 1 περιεχόμενα ενθετική ταξινόμηση ανάλυση αλγορίθμων σχεδίαση αλγορίθμων 2 ενθετική ταξινόμηση 3 ενθετική ταξινόμηση Βασική αρχή: Επιλέγει ένα-έναταστοιχείατηςμηταξινομημένης ακολουθίας
Διαβάστε περισσότεραΥπολογιστικά & Διακριτά Μαθηματικά
Υπολογιστικά & Διακριτά Μαθηματικά Ενότητα 1: Εισαγωγή- Χαρακτηριστικά Παραδείγματα Αλγορίθμων Στεφανίδης Γεώργιος Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.
Διαβάστε περισσότεραΣτοιχεία Αλγορίθµων και Πολυπλοκότητας
Στοιχεία Αλγορίθµων και Πολυπλοκότητας Ορέστης Τελέλης telelis@unipi.gr Τµήµα Ψηφιακών Συστηµάτων, Πανεπιστήµιο Πειραιώς Ο. Τελέλης Πανεπιστήµιο Πειραιώς Πολυπλοκότητα 1 / 16 «Ζέσταµα» Να γράψετε τις συναρτήσεις
Διαβάστε περισσότεραΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ
ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ Ενότητα 6α: Αναζήτηση Μαρία Σατρατζέμη Τμήμα Εφαρμοσμένης Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commos. Για εκπαιδευτικό
Διαβάστε περισσότεραΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ
ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ Ενότητα 6β: Ταξινόμηση με εισαγωγή και επιλογή Μαρία Σατρατζέμη Τμήμα Εφαρμοσμένης Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creatve
Διαβάστε περισσότεραΔομές Δεδομένων Ενότητα 2
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Ενότητα 2: Θέματα Απόδοσης Απόστολος Παπαδόπουλος Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.
Διαβάστε περισσότεραΠεριεχόμενα ΜΤ Τυχαίας Προσπέλασης Θεωρία Υπολογισμού Ενότητα 23: Μηχανές Turing Τυχαίας Προσπέλασης Επ. Καθ. Π. Κατσαρός Τμήμα Πληροφορικής Επ. Καθ.
Θεωρία Υπολογισμού Ενότητα 23: Μηχανές Turing Τυχαίας Προσπέλασης Τμήμα Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως
Διαβάστε περισσότεραΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ
ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ Ενότητα 2: Ασυμπτωτικός συμβολισμός Μαρία Σατρατζέμη Τμήμα Εφαρμοσμένης Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.
Διαβάστε περισσότεραΠληροφορική 2. Αλγόριθμοι
Πληροφορική 2 Αλγόριθμοι 1 2 Τι είναι αλγόριθμος; Αλγόριθμος είναι ένα διατεταγμένο σύνολο από σαφή βήματα το οποίο παράγει κάποιο αποτέλεσμα και τερματίζεται σε πεπερασμένο χρόνο. Ο αλγόριθμος δέχεται
Διαβάστε περισσότεραΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ
ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ Ενότητα 8α: Ταξινόμηση-Σύγκριση αλγορίθμων ταξινόμησης Μαρία Σατρατζέμη Τμήμα Εφαρμοσμένης Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης
Διαβάστε περισσότεραΔομημένος Προγραμματισμός
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Δομημένος Προγραμματισμός Ενότητα: Συναρτήσεις θεωρία Δ. Ε. Μετάφας Τμ. Ηλεκτρονικών Μηχ. Τ.Ε. Άδειες Χρήσης Το παρόν εκπαιδευτικό
Διαβάστε περισσότεραΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ
ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ Ενότητα 9: Στατιστικά Διάταξης- Στατιστικά σε Μέσο Γραμμικό Χρόνο Μαρία Σατρατζέμη Τμήμα Εφαρμοσμένης Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε
Διαβάστε περισσότεραΕισαγωγή στην Ανάλυση Αλγορίθμων
Εισαγωγή στην Ανάλυση Αλγορίθμων (4) Μεθοδολογία αναδρομικών σχέσεων (Ι) Με επανάληψη της αναδρομής Έστω όπου r και a είναι σταθερές. Βρίσκουμε τη σχέση που εκφράζει την T(n) συναρτήσει της T(n-) την T(n)
Διαβάστε περισσότεραΕλληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Πληροφορική II. Ενότητα 2 : Αλγόριθμοι. Δρ. Γκόγκος Χρήστος
1 Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Πληροφορική II Ενότητα 2 : Αλγόριθμοι Δρ. Γκόγκος Χρήστος 2 Ανοιχτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ηπείρου Τμήμα Χρηματοοικονομικής & Ελεγκτικής
Διαβάστε περισσότεραΑλγόριθμοι και πολυπλοκότητα Συγχωνευτική Ταξινόμηση
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Αλγόριθμοι και πολυπλοκότητα Συγχωνευτική Ταξινόμηση Ιωάννης Τόλλης Τμήμα Επιστήμης Υπολογιστών Συγχωνευτική Ταξινόμηση (Merge Sort) 7 2 9 4 2 4 7 9 7 2 2 7 9 4
Διαβάστε περισσότεραΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ
ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ Ενότητα 7β: Όρια Αλγόριθμων Ταξινόμησης Μαρία Σατρατζέμη Τμήμα Εφαρμοσμένης Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commos.
Διαβάστε περισσότεραQuicksort. ιδάσκοντες: Σ. Ζάχος,. Φωτάκης Επιμέλεια διαφανειών:. Φωτάκης. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών
Quicksort ιδάσκοντες: Σ. Ζάχος,. Φωτάκης Επιμέλεια διαφανειών:. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται
Διαβάστε περισσότεραΕισαγωγικές Έννοιες. ημήτρης Φωτάκης. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών. Εθνικό Μετσόβιο Πολυτεχνείο
Εισαγωγικές Έννοιες ημήτρης Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.
Διαβάστε περισσότεραΠοσοτικές Μέθοδοι στη Διοίκηση Επιχειρήσεων ΙΙ Σύνολο- Περιεχόμενο Μαθήματος
Ποσοτικές Μέθοδοι στη Διοίκηση Επιχειρήσεων ΙΙ Σύνολο- Περιεχόμενο Μαθήματος Χιωτίδης Γεώργιος Τμήμα Λογιστικής και Χρηματοοικονομικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης
Διαβάστε περισσότεραΟρισµός. Εστω συναρτήσεις: 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
Διαβάστε περισσότεραΔομημένος Προγραμματισμός
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Δομημένος Προγραμματισμός Ενότητα 5: Εντολές επανάληψης Κουκουλέτσος Κώστας Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστικών Συστημάτων
Διαβάστε περισσότεραΠρογραμματισμός Υπολογιστών & Υπολογιστική Φυσική
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική Ενότητα 7: Συναρτήσεις Νικόλαος Στεργιούλας Τμήμα Φυσικής Άδειες Χρήσης Το παρόν εκπαιδευτικό
Διαβάστε περισσότεραΔιάλεξη 09: Αλγόριθμοι Ταξινόμησης I
Διάλεξη 09: Αλγόριθμοι Ταξινόμησης I Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Οι αλγόριθμοι ταξινόμησης: Α. SelectionSort Ταξινόμηση με Επιλογή Β. InsertionSort Ταξινόμηση με Εισαγωγή
Διαβάστε περισσότεραΔομές Δεδομένων. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής. Δομές Δεδομένων. Τμήμα Εφαρμοσμένης Πληροφορικής
Ενότητα 5: Δείκτες και Δυναμική Δέσμευση- Αποδέσμευση Μνήμης στη C/ Υλοποίηση ΑΤΔ Συνδεδεμένη Λίστα με δείκτες /Ένα πακέτο για τον ΑΤΔ Συνδεδεμένη Λίστα Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν
Διαβάστε περισσότεραΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές Δεδομένων. Ιωάννης Γ. Τόλλης Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Δομές Δεδομένων Ιωάννης Γ. Τόλλης Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού
Διαβάστε περισσότεραΔομές Δεδομένων. Ενότητα 11: Τεχνικές Κατακερματισμού. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής.
Ενότητα 11: Τεχνικές Κατακερματισμού Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται
Διαβάστε περισσότεραΕπιλογή. ιδάσκοντες: Σ. Ζάχος,. Φωτάκης Επιμέλεια διαφανειών:. Φωτάκης. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών
Επιλογή ιδάσκοντες: Σ. Ζάχος,. Φωτάκης Επιμέλεια διαφανειών:. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται
Διαβάστε περισσότεραΔιαδικαστικός Προγραμματισμός
Διαδικαστικός Προγραμματισμός Ενότητα 8: Παραδείγματα με μονοδιάστατους πίνακες, συναρτήσεις, δείκτες, πέρασμα παραμέτρων με αναφορά Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό
Διαβάστε περισσότεραΠροβλήματα, αλγόριθμοι, ψευδοκώδικας
Προβλήματα, αλγόριθμοι, ψευδοκώδικας October 11, 2011 Στο μάθημα Αλγοριθμική και Δομές Δεδομένων θα ασχοληθούμε με ένα μέρος της διαδικασίας επίλυσης υπολογιστικών προβλημάτων. Συγκεκριμένα θα δούμε τι
Διαβάστε περισσότεραΆδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ
Θεωρία Υπολογισμού Ενότητα 21: Υπολογισμοί ΜΤ - Αναδρομικές Γλώσσες Τμήμα Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως
Διαβάστε περισσότεραΔομές Δεδομένων & Αλγόριθμοι
Θέματα Απόδοσης Αλγορίθμων 1 Η Ανάγκη για Δομές Δεδομένων Οι δομές δεδομένων οργανώνουν τα δεδομένα πιο αποδοτικά προγράμματα Πιο ισχυροί υπολογιστές πιο σύνθετες εφαρμογές Οι πιο σύνθετες εφαρμογές απαιτούν
Διαβάστε περισσότεραΔομές Δεδομένων (Data Structures)
Δομές Δεδομένων (Data Structures) Γραμμικές Λίστες Βασικές Έννοιες Βασικές Έννοιες. Αναπαράσταση με τύπο και με δείκτη. Γραμμικές Λίστες. Βασικές Λειτουργίες. Δομές Δεδομένων: Βασικές Έννοιες Αντικείμενο
Διαβάστε περισσότεραΤαξινόμηση με συγχώνευση Merge Sort
Ταξινόμηση με συγχώνευση Merge Sort 7 2 9 4 2 4 7 9 7 2 2 7 9 4 4 9 7 7 2 2 9 9 4 4 Πληροφορικής 1 Διαίρει και Βασίλευε Η μέθοδος του «Διαίρει και Βασίλευε» είναι μια γενική αρχή σχεδιασμού αλγορίθμων
Διαβάστε περισσότεραΑλγόριθμοι και πολυπλοκότητα Διαίρει και Κυρίευε
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Αλγόριθμοι και πολυπλοκότητα Διαίρει και Κυρίευε Ιωάννης Τόλλης Τμήμα Επιστήμης Υπολογιστών Διαίρει και Κυρίευε 7 9 4 4 7 9 7 7 9 4 4 9 7 7 9 9 4 4 Διαίρει και Κυρίευε
Διαβάστε περισσότεραΠροχωρημένες έννοιες προγραμματισμού σε C
Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Διδάσκοντες: Στάθης Ζάχος (zachos@cs.ntua.gr) Νίκος Παπασπύρου (nickie@softlab.ntua.gr)
Διαβάστε περισσότεραΕισαγωγή στην επιστήμη των υπολογιστών. Λογισμικό Υπολογιστών Κεφάλαιο 8ο Αλγόριθμοι
Εισαγωγή στην επιστήμη των υπολογιστών Λογισμικό Υπολογιστών Κεφάλαιο 8ο Αλγόριθμοι 1 Έννοια Ανεπίσημα, ένας αλγόριθμος είναι μια βήμα προς βήμα μέθοδος για την επίλυση ενός προβλήματος ή την διεκπεραίωση
Διαβάστε περισσότεραΥπολογιστικά & Διακριτά Μαθηματικά
Υπολογιστικά & Διακριτά Μαθηματικά Ενότητα 10: Αριθμητική υπολοίπων - Κυκλικές ομάδες: Διαιρετότητα - Ευκλείδειος αλγόριθμος - Κατάλοιπα Στεφανίδης Γεώργιος Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται
Διαβάστε περισσότεραΕισαγωγή στον Προγραμματισμό με C++
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Εισαγωγή στον Προγραμματισμό με C++ Ενότητα # 3: Επαναλήψεις Κωνσταντίνος Κουκουλέτσος Τμήμα Αυτοματισμού Άδειες Χρήσης Το παρόν
Διαβάστε περισσότεραΕισαγωγή στους Αλγόριθµους. Αλγόριθµοι. Ιστορικά Στοιχεία. Ο πρώτος Αλγόριθµος. Παραδείγµατα Αλγορίθµων. Τι είναι Αλγόριθµος
Εισαγωγή στους Αλγόριθµους Αλγόριθµοι Τι είναι αλγόριθµος; Τι µπορεί να υπολογίσει ένας αλγόριθµος; Πως αξιολογείται ένας αλγόριθµος; Παύλος Εφραιµίδης pefraimi@ee.duth.gr Αλγόριθµοι Εισαγωγικές Έννοιες
Διαβάστε περισσότεραΆδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ
Θεωρία Υπολογισμού Ενότητα 24: Μη Ντεντερμινιστικές Μηχανές Turing Τμήμα Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως
Διαβάστε περισσότεραΔομές Δεδομένων. Ενότητα 7: Άλλες παραλλαγές Συνδεδεμένων Λιστών-Παράσταση Αραιού Πολυωνύμου με Συνδεδεμένη Λίστα. Καθηγήτρια Μαρία Σατρατζέμη
Ενότητα 7: Άλλες παραλλαγές Συνδεδεμένων Λιστών-Παράσταση Αραιού Πολυωνύμου με Συνδεδεμένη Λίστα Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative
Διαβάστε περισσότεραΑλγόριθμοι Αναζήτησης
Αλγόριθμοι Αναζήτησης ημήτρης Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.
Διαβάστε περισσότεραΗλεκτρονικοί Υπολογιστές
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΧΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Ενότητα 9: Πίνακες στη C++ Ζαχαρούλα Ανδρεοπούλου Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.
Διαβάστε περισσότερα8. Η δημιουργία του εκτελέσιμου προγράμματος γίνεται μόνο όταν το πηγαίο πρόγραμμα δεν περιέχει συντακτικά λάθη.
1ΗΣ ΣΕΛΙΔΑΣ ΤΕΛΙΚΟ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 2015 Γ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΕΧΝΟΛΟΓΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ (ΚΥΚΛΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΗΡΕΣΙΩΝ) ΣΥΝΟΛΟ
Διαβάστε περισσότεραΔομές Δεδομένων. Ενότητα 2: Στοίβες Εισαγωγή-Υλοποίηση ΑΤΔ Στοίβα με Πίνακα-Εφαρμογή Στοίβας: Αντίστροφη Πολωνική Γραφή. Καθηγήτρια Μαρία Σατρατζέμη
Ενότητα 2: Στοίβες Εισαγωγή-Υλοποίηση ΑΤΔ Στοίβα με Πίνακα-Εφαρμογή Στοίβας: Αντίστροφη Πολωνική Γραφή Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative
Διαβάστε περισσότεραΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές Δεδομένων. Ιωάννης Γ. Τόλλης Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Δομές Δεδομένων Ιωάννης Γ. Τόλλης Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού
Διαβάστε περισσότεραΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ
ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Ενότητα 7: Γεωμετρία Γραμμικού Προβλήματος Σαμαράς Νικόλαος Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό
Διαβάστε περισσότεραΠληροφορική ΙΙ Ενότητα 1
Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Πληροφορική ΙΙ Ενότητα 1: Εισαγωγή Θεματική Ενότητα: Εισαγωγή στον Προγραμματισμό Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός
Διαβάστε περισσότεραΣου προτείνω να τυπώσεις τις επόμενες τέσσερις σελίδες σε ένα φύλο διπλής όψης και να τις έχεις μαζί σου για εύκολη αναφορά.
AeppAcademy.com facebook.com/aeppacademy Γεια. Σου προτείνω να τυπώσεις τις επόμενες τέσσερις σελίδες σε ένα φύλο διπλής όψης και να τις έχεις μαζί σου για εύκολη αναφορά. Καλή Ανάγνωση & Καλή Επιτυχία
Διαβάστε περισσότεραΑντικειμενοστραφής Προγραμματισμός
Αντικειμενοστραφής Προγραμματισμός ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Ενότητα 3: Έλεγχος ροής και επαναλήψεις. Δρ. Χαράλαμπος Ζ. Πατρικάκης Τμήμα Ηλεκτρονικών Μηχανικών
Διαβάστε περισσότεραΕισαγωγή στην πληροφορική
Εισαγωγή στην πληροφορική Ενότητα 5: ΑΛΓΟΡΙΘΜΟΙ Πασχαλίδης Δημοσθένης Τμήμα Διαχείρισης Εκκλησιαστικών Κειμηλίων Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για
Διαβάστε περισσότεραΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι
ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι κ. ΠΕΤΑΛΙΔΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ 1 Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται
Διαβάστε περισσότεραΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ
ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Ενότητα 18: Επίλυση Γενικών Γραμμικών Προβλημάτων Σαμαράς Νικόλαος Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό
Διαβάστε περισσότεραΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΑΝΑΠΤΥΞΗ ΚΑΙ ΣΧΕΔΙΑΣΗ ΛΟΓΙΣΜΙΚΟΥ Η γλώσσα προγραμματισμού C ΕΡΓΑΣΤΗΡΙΟ 2: Εκφράσεις, πίνακες και βρόχοι 14 Απριλίου 2016 Το σημερινό εργαστήριο
Διαβάστε περισσότεραΑρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου
Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου Ενότητα: ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ Νο 04 Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Εργαστήριο Ψηφιακών Συστημάτων και
Διαβάστε περισσότεραΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 4. Παραδείγματα Ανάλυσης Πολυπλοκότητας Ανάλυση Αναδρομικών Αλγόριθμων
ΕΠΛ31 Δομές Δεδομένων και Αλγόριθμοι 4. Παραδείγματα Ανάλυσης Πολυπλοκότητας Ανάλυση Αναδρομικών Αλγόριθμων Διάλεξη 04: Παραδείγματα Ανάλυσης Πολυπλοκότητας/Ανάλυση Αναδρομικών Αλγόριθμων Στην ενότητα
Διαβάστε περισσότεραΔιακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά
Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά και Πληροφορικής Μαθηματικά Πανεπιστήμιο ΙΙ Ιωαννίνων
Διαβάστε περισσότεραΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. 1 ο ΚΕΦΑΛΑΙΟ
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ 1 ο ΚΕΦΑΛΑΙΟ 1) Τι είναι πρόβλημα (σελ. 3) 2) Τι είναι δεδομένο, πληροφορία, επεξεργασία δεδομένων (σελ. 8) 3) Τι είναι δομή ενός προβλήματος (σελ. 8)
Διαβάστε περισσότεραΣημειώσεις του εργαστηριακού μαθήματος Πληροφορική ΙΙ. Εισαγωγή στην γλώσσα προγραμματισμού
Σημειώσεις του εργαστηριακού μαθήματος Πληροφορική ΙΙ Εισαγωγή στην γλώσσα προγραμματισμού Ακαδημαϊκό έτος 2016-2017, Εαρινό εξάμηνο Οι σημειώσεις βασίζονται στα συγγράμματα: A byte of Python (ελληνική
Διαβάστε περισσότεραΠρογραμματισμός Η/Υ. Αναζήτηση & Ταξινόμηση. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος
Προγραμματισμός Η/Υ Αναζήτηση & Ταξινόμηση ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος Αναζήτηση Το πρόβλημα της αναζήτησης (searching) ενός στοιχείου σε
Διαβάστε περισσότεραΠληροφορική II. Ενότητα 5 : Δομές Δεδομένων και αφηρημένοι. τύποι δεδομένων. Δρ. Γκόγκος Χρήστος
1 Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Πληροφορική II Ενότητα 5 : Δομές Δεδομένων και αφηρημένοι τύποι δεδομένων Δρ. Γκόγκος Χρήστος 2 Ανοιχτά Ακαδημαϊκά Τμήμα Χρηματοοικονομικής
Διαβάστε περισσότεραΑλγόριθμοι και Πολυπλοκότητα
Αλγόριθμοι και Πολυπλοκότητα Ανάλυση Αλγορίθμων Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ανάλυση Αλγορίθμων Η ανάλυση αλγορίθμων περιλαμβάνει τη διερεύνηση του τρόπου
Διαβάστε περισσότεραΥπολογιστικά & Διακριτά Μαθηματικά
Υπολογιστικά & Διακριτά Μαθηματικά Ενότητα 4: Διατάξεις Μεταθέσεις Συνδυασμοί Στεφανίδης Γεώργιος Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό
Διαβάστε περισσότεραΕρωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2
Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2 1. Ο αλγόριθμος είναι απαραίτητος μόνο για την επίλυση προβλημάτων Πληροφορικής 2. Ο αλγόριθμος αποτελείται από ένα πεπερασμένο σύνολο εντολών 3. Ο αλγόριθμος
Διαβάστε περισσότεραΣΤΑΤΙΣΤΙΚΗ ΕΠΙΧΕΙΡΗΣΕΩΝ
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα ΣΤΑΤΙΣΤΙΚΗ ΕΠΙΧΕΙΡΗΣΕΩΝ Ενότητα # 3: Αριθμητικά Περιγραφικά Μέτρα Εβελίνα Κοσσιέρη Τμήμα Λογιστικής και Χρηματοοικονομικής ΑΔΕΙΕΣ
Διαβάστε περισσότεραΑν ένα πρόβλημα λύνεται από δύο ή περισσότερους αλγόριθμους, ποιος θα είναι ο καλύτερος; Με ποια κριτήρια θα τους συγκρίνουμε;
Αν ένα πρόβλημα λύνεται από δύο ή περισσότερους αλγόριθμους, ποιος θα είναι ο καλύτερος; Με ποια κριτήρια θα τους συγκρίνουμε; Πως θα υπολογίσουμε το χρόνο εκτέλεσης ενός αλγόριθμου; Για να απαντήσουμε
Διαβάστε περισσότεραΨευδοκώδικας. November 7, 2011
Ψευδοκώδικας November 7, 2011 Οι γλώσσες τύπου ψευδοκώδικα είναι ένας τρόπος περιγραφής αλγορίθμων. Δεν υπάρχει κανένας τυπικός ορισμός της έννοιας του ψευδοκώδικα όμως είναι κοινός τόπος ότι οποιαδήποτε
Διαβάστε περισσότερα2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΔΟΜΗ ΕΠΑΝΑΛΗΨΗΣ 1) Πότε χρησιμοποιείται η δομή επανάληψης
Διαβάστε περισσότεραΘεωρία Πιθανοτήτων & Στατιστική
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ & Στατιστική Ενότητα η : Τυχαίες Μεταβλητές, Συναρτήσεις Κατανομής Πιθανότητας. Γεώργιος Ζιούτας Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών
Διαβάστε περισσότεραΔιάλεξη 04: Παραδείγματα Ανάλυσης
Διάλεξη 04: Παραδείγματα Ανάλυσης Πολυπλοκότητας/Ανάλυση Αναδρομικών Αλγόριθμων Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Παραδείγματα Ανάλυσης Πολυπλοκότητας : Μέθοδοι, παραδείγματα
Διαβάστε περισσότεραΕισαγωγή στους Αλγόριθμους. Παύλος Εφραιμίδης, Λέκτορας
Εισαγωγή στους Αλγόριθμους Παύλος Εφραιμίδης, Λέκτορας http://pericles.ee.duth.gr 1 Περιεχόμενα Μαθήματος Εισαγωγή στου Αλγόριθμους Πολυπλοκότητα Αλγορίθμων Ασυμπτωτική Ανάλυση Θεωρία Γράφων Κλάσεις Πολυπλοκότητας
Διαβάστε περισσότεραΕιδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων
Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων Άσκηση 1 α) Η δομή σταθμισμένης ένωσης με συμπίεση διαδρομής μπορεί να τροποποιηθεί πολύ εύκολα ώστε να υποστηρίζει τις
Διαβάστε περισσότεραΔιάλεξη 04: Παραδείγματα Ανάλυσης Πολυπλοκότητας/Ανάλυση Αναδρομικών Αλγόριθμων
Διάλεξη 04: Παραδείγματα Ανάλυσης Πολυπλοκότητας/Ανάλυση Αναδρομικών Αλγόριθμων Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Παραδείγματα Ανάλυσης Πολυπλοκότητας : Μέθοδοι, παραδείγματα
Διαβάστε περισσότεραΣχεδίαση και Ανάλυση Αλγορίθμων
Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 4.0 Επιλογή Αλγόριθμοι Επιλογής Select και Quick-Select Σταύρος Δ. Νικολόπουλος 2016-17 Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Ιωαννίνων Webpage: www.cs.uoi.gr/~stavros
Διαβάστε περισσότεραΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 4: Συναρτήσεις
ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 4: Συναρτήσεις Μιχάλης Δρακόπουλος Σχολή Θετικών επιστημών Τμήμα Μαθηματικών ΠΛΗΡΟΦΟΡΙΚΗ Ι Σημειώσεις MATLAB Ενότητα 4 ΠΛΗΡΟΦΟΡΙΚΗ Ι (MATLAB) Ενότητα 4 Σημειώσεις βασισμένες στο
Διαβάστε περισσότεραΑλγόριθμοι και πολυπλοκότητα Ταχυταξινόμηση (Quick-Sort)
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Αλγόριθμοι και πολυπλοκότητα Ταχυταξινόμηση (Quick-Sort) Ιωάννης Τόλλης Τμήμα Επιστήμης Υπολογιστών Ταχυταξινόμηση (Quick-Sort) 7 4 9 6 2 2 4 6 7 9 4 2 2 4 7 9 7
Διαβάστε περισσότεραQuicksort. Πρόβλημα Ταξινόμησης. Μέθοδοι Ταξινόμησης. Συγκριτικοί Αλγόριθμοι
Πρόβλημα Ταξινόμησης Quicksort Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Είσοδος : ακολουθία n αριθμών (α 1, α 2,..., α n
Διαβάστε περισσότεραΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Δομές δεδομένων Άσκηση αυτοαξιολόγησης 3-4 Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών Ενότητες 3 & 4: ένδρα, Σύνολα & Λεξικά Ασκήσεις και Λύσεις Άσκηση 1 Γράψτε
Διαβάστε περισσότεραΔομημένος Προγραμματισμός
Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Δομημένος Προγραμματισμός Ενότητα 4: Εντολές ελέγχου ροής Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά
Διαβάστε περισσότεραΔομές Δεδομένων & Αλγόριθμοι
- Πίνακες 1 Πίνακες Οι πίνακες έχουν σταθερό μέγεθος και τύπο δεδομένων. Βασικά πλεονεκτήματά τους είναι η απλότητα προγραμματισμού τους και η ταχύτητα. Ωστόσο δεν παρέχουν την ευελιξία η οποία απαιτείται
Διαβάστε περισσότεραΕργαστηριακή Άσκηση 1
Εργαστηριακή Άσκηση 1 Επανάληψη προγραμματισμού Βασικοί Αλγόριθμοι Είσοδος τιμών από το πληκτρολόγιο Σε όλα τα προγράμματα που θα γράψουμε στην συνέχεια του εξαμήνου θα χρειαστεί να εισάγουμε τιμές σε
Διαβάστε περισσότεραΥπολογιστικά & Διακριτά Μαθηματικά
Υπολογιστικά & Διακριτά Μαθηματικά Ενότητα 3: Σύνολα Συνδυαστική Στεφανίδης Γεώργιος Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως
Διαβάστε περισσότεραΑναζήτηση. 1. Σειριακή αναζήτηση 2. Δυαδική Αναζήτηση. Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη
Αναζήτηση. Σειριακή αναζήτηση. Δυαδική Αναζήτηση Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη Παραδοχή Στη συνέχεια των διαφανειών (διαλέξεων) η ασυμπτωτική έκφραση (συμβολισμός Ο, Ω, Θ) του χρόνου
Διαβάστε περισσότεραΔομές Δεδομένων και Αλγόριθμοι
Δομές Δεδομένων και Αλγόριθμοι Χρήστος Γκόγκος ΤΕΙ Ηπείρου, Τμήμα Μηχανικών Πληροφορικής ΤΕ Χειμερινό Εξάμηνο 2014-2015 (Παρουσίαση 5) 1 / 17 Απόδοση προγραμμάτων Συχνά χρειάζεται να εκτιμηθεί η απόδοση
Διαβάστε περισσότεραΑΕΠΠ Ερωτήσεις θεωρίας
ΑΕΠΠ Ερωτήσεις θεωρίας Κεφάλαιο 1 1. Τα δεδομένα μπορούν να παρέχουν πληροφορίες όταν υποβάλλονται σε 2. Το πρόβλημα μεγιστοποίησης των κερδών μιας επιχείρησης είναι πρόβλημα 3. Για την επίλυση ενός προβλήματος
Διαβάστε περισσότεραΔιδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ
Διάλεξη 14: Αλγόριθμοι Ταξινόμησης Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Οι αλγόριθμοι ταξινόμησης 3) Mergesort Ταξινόμηση με Συγχώνευση 4) BucketSort Ταξινόμηση με Κάδους Διδάσκων:
Διαβάστε περισσότεραΕισαγωγή στον δομημένο προγραμματισμό
Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Εισαγωγή στον δομημένο προγραμματισμό Ενότητα 5 η : Πίνακες (Προχωρημένα Θέματα) Αν. καθηγητής Στεργίου Κώστας e-mail: kstergiou@uowm.gr Τμήμα Μηχανικών Πληροφορικής
Διαβάστε περισσότεραΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι
ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι κ ΠΕΤΑΛΙΔΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ 1 Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται
Διαβάστε περισσότεραΆδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ
Θεωρία Υπολογισμού Ενότητα 12: Κανονικότητα ή μη των γλωσσών Τμήμα Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες,
Διαβάστε περισσότεραΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές Δεδομένων. Ιωάννης Γ. Τόλλης Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Δομές Δεδομένων Ιωάννης Γ. Τόλλης Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού
Διαβάστε περισσότεραΥΠΟΛΟΓΙΣΤΕΣ ΙI. Άδειες Χρήσης. Δείκτες Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Άδειες Χρήσης ΥΠΟΛΟΓΙΣΤΕΣ ΙI Δείκτες Διδάσκοντες: Αν Καθ Δ Παπαγεωργίου, Αν Καθ Ε Λοιδωρίκης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative
Διαβάστε περισσότεραΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι
ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι κ. ΠΕΤΑΛΙΔΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ 1 Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται
Διαβάστε περισσότερα