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

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

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

Transcript

1 ΚΕΦΑΛΑΙΟ 5: Αλγόριθμοι 5.1 Η έννοια του αλγορίθμου 5.2 Αναπαράσταση αλγορίθμων 5.3 Επινόηση αλγορίθμων 5.4 Δομές επανάληψης 5.5 Αναδρομικές δομές 5.6 Απόδοση και ορθότητα Οι διαφάνειες βασίζονται σε μεγάλο βαθμό σε αυτές που συνοδεύονται με το προτεινόμενο σύγγραμμα, καθώς και στις διαφάνειες προηγούμενων ετών του κ. Κουρκουμπέτη. 1

2 Αλγόριθμος: Ορισμός Ένας αλγόριθμος είναι ένα διατεταγμένο σύνολο, πεπερασμένων, σαφώς ορισμένων, εκτελέσιμων βημάτων, το οποίο ορίζει μία τερματιζόμενη διαδικασία. Έχουμε ήδη δει αλγορίθμους για: μετατροπής δεκαδικής αναπάραστασης αριθμού σε δυαδική Ανίχνευση και διόρθωση σφαλμάτων Έλεγχο πολλών διεργασιών από το λειτουργικό σύστημα Τον κύκλο μηχανής μιας CPU: 2

3 Αλγόριθμος: Ορισμός (2) Διατεταγμένο (ordered) σύνολο βημάτων: που να ξεχωρίζουν Όχι απαραίτητα να εκτελούνται με τη σειρά (π.χ. παράλληλοι αλγόριθμοι για πολλούς επεξεργαστές ή για πολλαπλά threads) Πεπερασμένα (finite): Σαφώς ορισμένα (unambiguous): να μην είναι αόριστα και να προκύπτουν κατά την διαδικασία Eκτελέσιμα βήματα: π.χ. όχι κάτι σαν το οποίο ορίζει μία τερματιζόμενη διαδικασία Αν και ορίζονται και αλγόριθμοι για ατέρμονες διεργασίες, π.χ. Διαίρεση του 1 με το 3 3

4 Αλγόριθμοι, προγράμματα και γλώσσες είσοδος Αλγόριθμος έξοδος αλγόριθμοι που τερματίζουν ή δεν τερματίζουν πως να περιγράψουμε έναν αλγόριθμο; φυσική γλώσσα (ελληνικά, αγγλικά) είναι ασαφής «μαζεύετε τριαντάφυλλα όσο σας επιτρέπεται» Γλώσσα προγραμματισμού: εύκολη και περιεκτική έκφραση αλγορίθμων άμεσα κατανοητή από υπολογιστές και ανθρώπους περιορισμός λαθών 4

5 Αλγόριθμοι : επίπεδα αφαίρεσης Ένα πρόβλημα αποτελεί το κίνητρο για την επινόηση ενός αλγόριθμου. Ο αλγόριθμος είναι μια διαδικασία επίλυσης του προβλήματος αυτού. Συνήθως μία διαδικασία από πολλές πιθανές Η αναπαράσταση είναι η επαρκής περιγραφή ενός αλγορίθμου για τη μετάδοση του στο επιθυμητό κοινό. Πάντα μία περιγραφή από πολλές πιθανές. 5

6 Αλγόριθμοι : επίπεδα αφαίρεσης (2) Πρόγραμμα (program): είναι μια αναπαράσταση ενός αλγορίθμου Η επίσημη αναπαράσταση, γραμμένη για εκτέλεση από υπόλογιστή Διεργασία (process): η διαδικασία εκτέλεσης ενός προγράμματος (και συνεπώς και του αλγορίθμου) 6

7 Αναπαράσταση αλγορίθμων : Κατασκευή πουλιού από ένα τετράγωνο κομμάτι χαρτί 7

8 Αρχέτυπα Αρχέτυπα (primitives): Καλά ορισμένα σύνολα από δομικά μπλοκ από τα οποία μπορεί να κατασκευαστούν αναπαραστάσεις αλγορίθμων Μια συλλογή αρχετύπων μαζί με μια συλλογή κανόνων με το πως αυτά μπορούν να συνδυαστούν για να αναπαραστήσουν περίπλοκες ιδέες συνιστά μια γλώσσα προγραμματισμού Κάθε αρχέτυπο έχει τη δική του σύνταξη (syntax) και σημασιολογία (semantics) Σύνταξη: συμβολική αναπαράσταση Σημασιολογία: Σημασία του αρχέτυπου Τα αρχέτυπα είναι σε πιο υψηλό επίπεδο από αυτό των εντολών της γλώσσας μηχανής (που είδαμε στον Κεφ. 2) 8

9 Αρχέτυπα Origami Αρχέτυπα (primitives): Καλά ορισμένα σύνολα από δομικά μπλοκ από τα οποία μπορεί να κατασκευαστούν αναπαραστάσεις αλγορίθμων 9

10 Αρχέτυπα ψευδοκώδικα Ψευδοκώδικας (pseydo-code): είναι ένα λιγότερο επίσημο (από την γλώσσα προγραμματισμού) σύστημα από συμβολισμούς το οποίο μπορεί να αναπαραστήσει τις ιδέες που διέπουν έναν αλγόριθμο Ανάθεση: όνομα έκφραση name expression Επιλογή συνθήκης: αν (συνθήκη) τότε (ενέργεια 1) αλλιώς (ενέργεια 2) if (συνθήκη) then (ενέργεια 1) else (ενέργεια 2) 10

11 Αρχέτυπα ψευδοκώδικα (2) Επαναλαμβανόμενη εκτέλεση: όσο (συνθήκη) κάνε (ενέργεια) while (συνθήκη) do (ενέργεια) Διαδικασία (procedure): Μπλοκ από εντολές που εκτελούν μια αυτόνομη λειτουργία Λέγεται και: υπο-πρόγραμμα (subprogram) υπορουτίνα (subroutine), διαδικασία (procedure), συνάρτηση (function) διαδικασία όνομα (συγκεκριμένο όνομα της μονάδας) procedure name 11

12 Διαδικασία Η διαδικασία (procedure) πρέπει να είναι γενική και να είναι εφαρμόσιμη σε κάθε περίπτωση Π.χ. H περιγραφή μιας διαδικασία για ταξινόμηση μιας λίστας ονομάτων κατά αλφαβητική σειρά πρέπει να είναι τέτοια ώστε να εφαρμόζεται σε οποιαδήποτε λίστα ονομάτων και όχι σε μια συγκεκριμένη μόνο Παράμετροι (parameters): στην προκειμένη περίπτωση η λίστα προς ταξινόμηση Π.χ. Procedure Sort (List) 12

13 Παραδείγματα στοίχισης Η ανάγνωση ψευδο-κώδικα διευκολύνεται αν κάνουμε καλή στοίχιση και περιγραφή των βρόχων και του τέλος των if, while, 13

14 Βήματα επίλυσης προβλήματος Βήματα κατά τον Polya (1945) 1. Κατανόηση του προβλήματος. 2. Σχηματισμός (στο νου μας) μιας ιδέας για το πώς μπορεί να λυθεί το πρόβλημα από μία αλγοριθμική διαδικασία. 3. Συγκρότηση του αλγορίθμου και αναπαράσταση του ως πρόγραμμα. 4. Αξιολόγηση του προγράμματος όσον αφορά την ακρίβεια του και τη δυνατότητα να χρησιμοποιηθεί ως εργαλείο για την επίλυση άλλων προβλημάτων. Όχι απαραίτητο (και πολλές φορές όχι αποδοτικό) να τηρείται αυστηρή αλληλουχία στα βήματα αυτά 14

15 Τεχνικές για το πρώτο βήμα Επίλυση του προβλήματος προς τα πίσω. Επίλυση ενός πιο εύκολου, σχετικού προβλήματος: «Χαλαρώνει» κάποιους από τους ασφυκτικούς περιορισμούς του προβλήματος. Επιλύει πρώτα κάποια επιμέρους τμήματα του προβλήματος - συνθετική μεθοδολογία. Λέγεται και τεχνική από-κάτω-προς-τα-πάνω (bottom-up) Η βηματική εκλέπτυνση (step-wise refinement) είναι μία αναλυτική μεθοδολογία. Δημοφιλής τεχνική επειδή παράγει τμηματικά προγράμματα Απλοποίηση βήματων σε πολλά απλούστερα Λέγεται και τεχνική από πάνω-προς-τα-κάτω (top-down) 15

16 Βηματική εκλέπτυνση Αλγόριθμος: φτιάξε στιγμιαίο καφέ (1) βράσε νερό (1.1) γέμισε χύτρα (1.1.1) βάλε χύτρα κάτω από βρύση (1.1.2) άνοιξε βρύση (1.2) άναψε το μάτι (1.3) περίμενε να βράσει (1.4) σβήσε το μάτι (1.1.3) περίμενε να γεμίσει η χύτρα (1.1.4) κλείσε βρύση (1.3.1) περίμενε να σφυρίξει η χύτρα (2) βάλε καφέ στο φλιτζάνι (3) πρόσθεσε νερό στο φλιτζάνι (2.1) άνοιξε το δοχείο του καφέ (2.2) πάρε ένα κουταλάκι καφέ (2.3) άδειασε το κουταλάκι στο φλιτζάνι (2.4) κλείσε το δοχείο του καφέ (3.1) βάλε νερό από την χύτρα στο φλιτζάνι μέχρι να γεμίσει (2.1.1) πάρε το δοχείο του καφέ από το ντουλάπι (2.1.2) βγάλε το καπάκι (2.4.1) βάλε το καπάκι στο δοχείο (2.4.2) βαλε το δοχείο στο ντουλάπι 16

17 Ακολουθία βημάτων για αλγόριθμο 1. βάλε την χύτρα κάτω από βρύση 2. άνοιξε την βρύση εάν δεν υπάρχει νερό; 3. περίμενε να γεμίσει η χύτρα 4. κλείσε την βρύση 5. άναψε το μάτι 6. περίμενε να σφυρίξει η χύτρα 7. σβήσε το μάτι 8. πάρε το δοχείο του καφέ από το ντουλάπι 9. βγάλε το καπάκι 10. πάρε ένα κουταλάκι καφέ 11. άδειασε το κουταλάκι στο φλιτζάνι 12. βάλε το καπάκι στο δοχείο 13. βαλε το δοχείο στο ντουλάπι 14. βάλε νερό από την χύτρα στο φλιτζάνι μέχρι να γεμίσει εάν δεν υπάρχει καφές, να δοκιμάσει το επόμενο δοχείο καφέ; εάν υπάρχουν 1000 δοχεία, πολλά από αυτά άδεια, τι να κάνει; 17

18 Υπόδειγμα προβλήματος Το άτομο Α πρέπει να βρει τις ηλικίες των τριών παιδιών του ατόμου Β. Ο Β λέει στον Α ότι το γινόμενο των ηλικιών των παιδιών του είναι 36. Ο Α απαντάει ότι χρειάζεται άλλο ένα στοιχείο Ο Β λέει στον Α το άθροισμα των ηλικιών των παιδιών του. Ο Α απαντάει ξανά ότι χρειάζεται άλλο ένα στοιχείο Ο Β λέει στον Α ότι το μεγαλύτερο παιδί του παίζει πιάνο Ο Α λέει στον Β τις ηλικίες των τριών παιδιών του. Ποιες είναι οι ηλικίες των τριών παιδιών; 18

19 Υπόδειγμα προβλήματος (2) Λύση 19

20 Διαγράμματα ροής Διαγράμματα ροής (flow charts): γραφικός τρόπος περιγραφής δομής αλγορίθμων Ορίζουμε τα βασικά συστατικά διαγραμμάτων ροής -- ακολουθία -- δοκιμή (διάφοροι τύποι) -- επανάληψη (διάφοροι τύποι) ακολουθία βάλε την χύτρα κάτω από βρύση άνοιξε την βρύση περίμενε να γεμίσει η χύτρα κλείσε την βρύση άναψε το μάτι περίμενε να σφυρίξει η χύτρα σβήσε το μάτι πάρε το δοχείο του καφέ από το ντουλάπι δοκιμή (test) συνθήκη = false συνθήκη = false συνθήκη = true 20

21 Σύνθεση βασικών διαγραμμάτων Αλγόριθμος: σύνθεση βασικών διαγραμμάτων ακολουθία δοκιμή (test) false true ακολουθία ακολουθία 21

22 Η δομή ελέγχου επιλογής δοκιμή συνθήκης false if condition then P1 true δοκιμή συνθήκης false P1 P2 true P1 if condition then P1 else P2 if x>3 then z:=1 else y:=8 22

23 Παράδειγμα φωλιασμένων επιλογών δοκιμή συνθήκης false δοκιμή συνθήκης false P2 true true δοκιμή συνθήκης false P1 P1 P2 true P3 P4 if condition then P1 else if condition then P3 else P4 P2 23

24 Δομές Επανάληψης Βρόχος προ-ελέγχου (pro-test loop): όσο (συνθήκη) κάνε (σώμα βρόχου) while (condition) do () Βρόχος μετα-ελέγχου (post-test loop): επανάλαβε (σώμα βρόχου) μέχρι(συνθήκη) repeat (loop body) until(condition) 24

25 Δομές επανάληψης (2) Υποθέτει ότι υπάρχει ένα κέρμα στην τσέπη στην αρχή Δεν υποθέτει ότι υπάρχει ένα κέρμα στην τσέπη στην αρχή (και ελέγχει) 25

26 Η δομή ελέγχου επανάληψης Η δομή βρόχου όσο (while) 26

27 Άλλο παράδειγμα δομής επανάληψης Η δομή βρόχου επανέλαβε (repeat) 27

28 Στοιχεία ελέγχου επανάληψης Χρειάζεται προσοχή με τον έλεγχο και την τροποποίηση! 28

29 Επανάληψη: Αρχέτυπα (εντολές) ψευδοκώδικα Ανάθεση όνομα έκφραση Επιλογή συνθήκης αν (συνθήκη) τότε (ενέργεια) Επαναλαμβανόμενη εκτέλεση όσο (συνθήκη) κάνε (ενέργεια) Διαδικασία διαδικασία όνομα (συγκεκριμένο όνομα της μονάδας) 29

30 Παράδειγμα Διαδικασίας διαδικασία Χαιρετισμός Μετρητής 3; όσο (Μετρητής >0) κάνε (τύπωσε το μήνυμα Γεια χαρά και Μετρητής Μετρητής-1) 30

31 Ο αλγόριθμος της σειριακής αναζήτησης (sequential search) σε ψευδοκώδικα Αρχή: μια λίστα με ονόματα αλφαβητικά ταξινομημένη Στόχος είναι να βρεθεί η ΤιμήΣτόχος (π.χ. Ένα συγκεκριμένο όνομα) στην Λίστα 31

32 Sequential Search 32

33 Αλγόριθμος Αλφαβητικής ταξινόμησης λίστας Αριθμός βημάτων στην χειρότερη περίπτωση για μια λίστα μήκους n ( n 1) = 1 2 n( n 1) = 1 2 ( n 2 n) 33

34 Ο αλγόριθμος ταξινόμησης με εισαγωγή (insertion sort) σε ψευδοκώδικα διαδικασία Ταξινόμηση (Λίστα) Ν 2 όσο (η τιμή του Ν δεν υπερβαίνει το μήκος της Λίστας) κάνε (επίλεξε την Ν-οστή καταχώρηση της Λίστας ως οριακή καταχώρηση. Μετακίνησε την οριακή καταχώριση σε μία προσωρινή θέση, αφήνοντας ένα κενό στη Λίστα. όσο (υπάρχει κάποιο όνομα επάνω από το κενό, και το όνομα αυτό είναι μεγαλύτερο από την οριακή καταχώριση) κάνε (μετακίνησε το όνομα που βρίσκεται επάνω από το κενό προς τα κάτω, αφήνοντας ένα κενό από πάνω του) Τοποθέτησε την οριακή καταχώριση στο κενό της Λίστας. Ν Ν + 1 ) 34

35 Insertion Sort 35

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

37 Αναδρομή (Recursion) (2) Αναδρομικός (recursive) αλγόριθμος: καλεί τον εαυτό του Μεθοδολογία: εκφράζουμε την διαδικασία με βάση ιδίου τύπου διαδικασίες που λειτουργούν σε απλούστερα προβλήματα, γνωρίζουμε την απάντηση για το πλέον απλό πρόβλημα factorial(n) = 1*2*3*... (N-1)*N = N*factorial(N-1) module factorial(n) if N=1 then answer = 1 else answer = N * factorial(n-1) * 2 * 1 37

38 Αναδρομική στρατηγική (Δυαδική Αναζήτηση) για αναζήτηση της καταχώρισης Κώστας σε μια ταξινομημένη λίστα Είσοδος: Μια λίστα που είναι ταξινομημένη αλφαβητικά 38

39 Εφαρμογή της δυαδικής αναζήτησης για την καταχώριση Κώστας σε μία ταξινομημένη λίστα Αριθμός βημάτων χειρότερης περίπτωσης Log 2 n = πόσες φορές διαιρείται το n με το 2 2 logn = n 39

40 Ένα πρώτο προσχέδιο του αλγορίθμου δυαδικής αναζήτησης (Binary Search) Είσοδος: Μια λίστα που είναι ταξινομημένη αλφαβητικά 40

41 Ο αλγόριθμος της δυαδικής αναζήτησης σε ψευδοκώδικα Διαδικασία Αναζήτηση (Λίστα, ΤιμήΣτόχος) αν ( Η Λίστα είναι άδεια) τότε (Ανάφερε ότι η αναζήτηση απέτυχε) αλλιώς [Επίλεξε τη μεσαία καταχώριση της Λίστας ως την ΚαταχώρισηΠροςΈλεγχο. Εκτέλεσε το παρακάτω μπλοκ εντολών που αντιστοιχεί στην κατάλληλη περίπτωση. περίπτωση 1: ΤιμήΣτόχος=ΚαταχώρισηΠροςΈλεγχο (Ανέφερε ότι η αναζήτηση είναι επιτυχής.) περίπτωση 2: ΤιμήΣτόχος<ΚαταχώρισηΠροςΈλεγχο (Εφάρμοσε τη διαδικασία Αναζήτηση για να δεις αν η ΤιμήΣτόχος βρίσκεται στο τμήμα της λίστα που προηγείται της ΚαταχώρισηΠροςΈλεγχο, και ανέφερε το αποτέλεσμα αυτής της αναζήτησης.) περίπτωση3: ΤιμήΣτόχος> ΚαταχώρισηΠροςΈλεγχο (Εφάρμοσε τη διαδικασία Αναζήτηση για να δεις αν η ΤιμήΣτόχος βρίσκεται στο τμήμα της λίστα μετά την ΚαταχώρισηΠροςΈλεγχο, και ανέφερε το αποτέλεσμα αυτής της αναζήτησης.) ] τέλος αν 41

42 Ψευδοκώδικας Δυαδικής Αναζήτησης low = 0; high = N-1; BinarySearch(A[0..N-1], value, low, high) { if (high < low) return -1 // not found mid = (low + high) / 2 if (A[mid] > value) return BinarySearch(A, value, low, mid-1) else if (A[mid] < value) return BinarySearch(A, value, mid+1, high) else return mid // found } 42

43 Ο αλγόριθμος της δυαδικής αναζήτησης Αναζήτηση του Β στην λίστα Α Β Γ Δ Ε Ζ Η 43

44 Ο αλγόριθμος της δυαδικής αναζήτησης (2) Αναζήτηση του Δ στην λίστα Α Γ Ε Ζ Η 44

45 Ο αλγόριθμος της δυαδικής Αναζήτηση του Δ στην λίστα Α Γ Ε Ζ Η αναζήτησης 45

46 Αναδρομικές διαδικασίες Η διαδικασία καλεί τον εαυτό της Κάθε αντίτυπο της διαδικασίας καλεί τον εαυτό της (με διαφορετικές παραμέτρους) Π.χ. Η διαδικασία για το n! (n παραγοντικό) Κάθε κλήση της διαδικασίας λέγεται ενεργοποίηση (activation) Σε μια χρονική στιγμή μόνο ένα αντίτυπο της διαδικασίας εκτελείται, τα υπόλοιπα (που έχουν κληθεί πριν) περιμένουν το αποτέλεσμα αυτού του αντιτύπου Κάθε αναδρομική διεργασία περιέχει συνθήκη τερματισμού (λέγεται περίπτωση βάσης (base case) ή εκφυλισμένη περίπτωση (degenarative case) Αν η συνθήκη δεν ικανοποιείται, καλείται και πάλι η διαδικασία με άλλες παραμέτρους, που πλησιάζουν στην συνθήκη τερματισμού module factorial(n) if N=1 then answer = 1 else answer = N * factorial(n-1) 46

47 Δυαδική Αναζήτηση Αρχικοποίηση με μια ταξινομημένη λίστα Αν βρεθεί η Τιμή-Στόχος ή αν προκύψει άδεια λίστα, ο αλγόριθμος τερματίζει Διαφορετικά, καλείται ένα αντίτυπο της διαδικασίας με το μισό της λίστας (άνω ή κάτω μισό) Σίγουρος τερματισμός: εφόσον η λίστα είναι πεπερασμένη και κάθε φορά η διαδικασία καλείται για το μισό της λίστας της προηγούμενης κλήσης, κάποια στιγμή ο αλγόριθμος θα τελειώσει Θα βρεθεί η Τιμή-Στόχος ή θα προκύψει άδεια λίστα 47

48 Αποδοτικότητα Αλγορίθμων (Παράδειγμα) Λίστα 30,000 ονομάτων φοιτητών Ακολουθιακή (sequential) αναζήτηση: κατά μέσο όρο χρειάζεται να περάσει 15,000 ονόματα 10msec για να ελέγξει ένα όνομα Μέσος χρόνος για έλεγχο: 150 sec Δυαδική (binary) αναζήτηση: χρειάζεται να ελέγξει το πολύ 15 ονόματα Όσες φορές (το πολύ) χρειάζεται να κοπεί μια λίστα 30,000 ονομάτων στην μέση 10msec για να ελέγξει ένα όνομα Μέσος χρόνος για έλεγχο: 0,15 sec 48

49 Αποδοτικότητα Λογισμικού Μετριέται ως πλήθος των εκτελούμενων εντολών του αλγορίθμου Συνήθως θεωρούμε τις πιο σοβαρές (από άποψη υπολογιστικού φόρτου ή αποθηκευτικού χώρου) εντολές Έχει επίδραση στο χρόνο ή στο πόσο αποθηκευτικός χώρος απαιτείται για την εκτέλεση ενός αλγορίθμου Ενδιαφερόμαστε για μια γενική μορφή που να δείχνει την απόδοση για μια λίστα οποιουδήποτε μήκους n Καλύτερη (best-case), χειρότερη (worst-case) και μέση (average-case) περίπτωση. π.χ. Είδαμε την μέση περίπτωση για την ακολουθιακή αναζήτηση: n/2 έλεγχοι για λίστα μήκους n και χειρότερη περίπτωση ln (n) για την δυαδική αναζήτηση για λίστα μήκους n Ο συμβολισμός με Θ προσδιορίζει την αποδοτικότητα των αλγορίθμων Παράδειγμα η ταξινόμηση με εισαγωγή αναπαριστάται με Θ(n 2 ) Θ: σύμβολο Landau 49

50 Ανάλυση αλγορίθμου ταξινόμησης με εισαγωγή Επικεντρωνόμαστε στο πόσες συγκρίσεις χρειάζονται στον αλγόριθμο Επιλογή μιας καταχώρησης σαν οριακή καταχώρηση (pivot): 2,3,...n Σύγκριση του pivot με όλα τα προηγούμενα στοιχεία Καλύτερη περίπτωση: Η λίστα είναι ταξινομημένη ήδη αλφαβητικά Οπότε χρειάζεται σύγκριση του pivot με ένα στοιχείο n-1 συγκρίσεις Χειρότερη περίπτωση: Η λίστα είναι σε ανάποδη αλφαβητική σειρά Χρειάζεται σύγκριση του pivot (που είναι σε μια θέση k) με όλα τα προηγούμενα στοιχεία 1,2,...k-1 Συνολικά (n-1) συγκρίσεις = (1/2)*(n 2 -n) συγκρίσεις Μέση περίπτωση: (1/4)*(n 2 -n) συγκρίσεις 50

51 Σενάριο χειρότερης περίπτωσης για την ταξινόμηση με εισαγωγή Χειρότερη περίπτωση: Η λίστα είναι σε ανάποδη αλφαβητική σειρά Χρειάζεται σύγκριση του pivot (που είναι σε μια θέση k) με όλα τα προηγούμενα στοιχεία 1,2,...k-1 Συνολικά (n-1) συγκρίσεις = (1/2)*(n 2 -n) συγκρίσεις 51

52 f Ορισμός ταχύτητας αύξησης μιας συνάρτησης: Σύμβολα Landau ( n) O( g( n)) : f έχει την g ασυμπτωτικό άνω φράγμα όταν n, f ( n) g( n) k η f αυξάνεται το πολύ σαν την g n 2,5 O(n 3 ), 2n 2 +10n 5 O(n 2 ),2 n + 2n 2 O(2 n ) f ( n) Θ( g( n)) : f έχει την g ασυμπτωτικό άνω και κάτω φράγμα η f αυξάνεται σαν την g, άρα είναι στην οικογένεια Θ(g) όταν n, g( n) k 1 f ( n) g( n) k 2 2n n 5 Θ( n 2 ),2n logn + 10n 5 Θ( nlogn) 52

53 Γράφημα της ανάλυσης χειρότερης περίπτωσης του αλγορίθμου ταξινόμησης με εισαγωγή f(n) = (1/2)*(n 2 -n) n Ο αλγόριθμος ταξινόμησης με εισαγωγή ανήκει στην κλάση αλγορίθμων Θ(n 2 ) 53

54 Γράφημα της ανάλυσης χειρότερης περίπτωσης του αλγορίθμου δυαδικής αναζήτησης f(n) = ln(n) n Ο αλγόριθμος δυαδικής αναζήτησης ανήκει στην κλάση αλγορίθμων O (logn) = O(ln n) 54

55 Επαλήθευση λογισμικού Απόδειξη ορθότητας αλγορίθμου Ισχυρισμοί (assertions) Προσυνθήκες (preconditions): ισχύουν πριν ξεκινήσει ο αλγόριθμος Αμετάβλητοι βρόχοι (loop invariant): ισχυρισμοί που είναι σωστοί κάθε φορά που φτάνουμε σε ένα σημείο του βρόχου Έλεγχοι και συνδυαστικοί έλεγχοι 55

56 Παράδειγμα προβλήματος: Διαχωρισμός αλυσίδας Ένας ταξιδιώτης έχει μία χρυσή αλυσίδα εφτά κρίκων. Πρέπει να μείνει σε ένα απομονωμένο ξενοδοχείο για επτά νύχτες. Το ενοίκιο για κάθε νύχτα είναι ένας κρίκος από την αλυσίδα του. Ποιος είναι ο μικρότερος αριθμός κρίκων που πρέπει να κοπούν ώστε ο ταξιδιώτης να πληρώνει στο ξενοδοχείο έναν κρίκο από την αλυσίδα κάθε πρωί χωρίς να καταβάλει προκαταβολικά τη διαμονή του; 56

57 Λύση 1: Διαχωρισμός της αλυσίδας με τρία μόνο κοψίματα 57

58 Διαχωρισμός της αλυσίδας με μόνο ένα κόψιμο : Καλύτερη λύση 58

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

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

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

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

ΚΕΦΑΛΑΙΟ 5: Αλγόριθμοι ΚΕΦΑΛΑΙΟ 5: Αλγόριθμοι Αρχικές έννοιες Αναπαράσταση αλγορίθμων Διαγράμματα ροής και δομές επανάληψης Αλγόριθμος σειριακής αναζήτησης Αλγόριθμος αλφαβητικής ταξινόμησης Αναδρομικοί αλγόριθμοι Αλγόριθμος

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

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

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

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

ΚΕΦΑΛΑΙΟ 5: Αλγόριθµοι. 5.1 Αλγόριθµος: Ορισµός. Αλγόριθµοι : επίπεδα αφαίρεσης

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

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

Εισαγωγή στην πληροφορική

Εισαγωγή στην πληροφορική Εισαγωγή στην πληροφορική Ενότητα 5: ΑΛΓΟΡΙΘΜΟΙ Πασχαλίδης Δημοσθένης Τμήμα Διαχείρισης Εκκλησιαστικών Κειμηλίων Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για

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

Εισαγωγή στην επιστήμη των Υπολογιστών & Τηλεπικοινωνιών

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΤΕΙ ΙΟΝΙΩΝ ΝΗΣΩΝ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ - ΕΙΣ ΤΕΙ ΙΟΝΙΩΝ ΝΗΣΩΝ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ - ΕΙΣ. ΚΑΤΕΥΘΥΝΣΗ ΔΙΟΙΚΗΣΗΣ ΤΟΥΡΙΣΤΙΚΩΝ ΕΠΙΧΕΙΡΗΣΕΩΝ ΚΑΙ ΕΠΙΧΕΙΡΗΣΕΩΝ ΦΙΛΟΞΕΝΙΑΣ Πληροφορική I "Προγραμματισμός" B. Φερεντίνος

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

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

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

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

ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ

ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Δρ. Κόννης Γιώργος Πανεπιστήμιο Κύπρου - Τμήμα Πληροφορικής Προγραμματισμός Στόχοι 1 Να περιγράψουμε τις έννοιες του Υπολογιστικού Προβλήματος και του Προγράμματος/Αλγορίθμου

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

Θέματα Προγραμματισμού Η/Υ

Θέματα Προγραμματισμού Η/Υ Πρόγραμμα Μεταπτυχιακών Σπουδών Πληροφορική και Υπολογιστική Βιοϊατρική Θέματα Προγραμματισμού Η/Υ Ενότητα 1: Εισαγωγή Θεματική Ενότητα: Εισαγωγή στον Προγραμματισμό ΘΕΜΑΤΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Η/Υ Θεματική

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

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

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

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

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

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

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

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

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

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

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL)

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL) Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL) Pascal- Εισαγωγή Η έννοια του προγράμματος Η επίλυση ενός προβλήματος με τον υπολογιστή περιλαμβάνει, όπως έχει ήδη αναφερθεί, τρία εξίσου

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

Πρόβλημα 37 / σελίδα 207

Πρόβλημα 37 / σελίδα 207 Πρόβλημα 37 / σελίδα 207 2.5. Ôåóô áõôïáîéïëüãçóçò Δίνονται οι παρακάτω ομάδες προτάσεων. Σε κάθε μία από αυτές, να κάνετε τις απαραίτητες διορθώσεις ώστε να ισχύουν οι προτάσεις 1. Η αναπαράσταση

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

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

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

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

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

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

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

Προγραμματιστικές Τεχνικές

Προγραμματιστικές Τεχνικές Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Αγρονόμων Τοπογράφων Μηχανικών Προγραμματιστικές Τεχνικές Βασίλειος Βεσκούκης Δρ. Ηλεκτρολόγος Μηχανικός & Μηχανικός Υπολογιστών ΕΜΠ v.vescoukis@cs.ntua.gr Ρωμύλος Κορακίτης

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

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

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

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

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Πληροφορική II. Ενότητα 2 : Αλγόριθμοι. Δρ. Γκόγκος Χρήστος

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Πληροφορική II. Ενότητα 2 : Αλγόριθμοι. Δρ. Γκόγκος Χρήστος 1 Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Πληροφορική II Ενότητα 2 : Αλγόριθμοι Δρ. Γκόγκος Χρήστος 2 Ανοιχτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ηπείρου Τμήμα Χρηματοοικονομικής & Ελεγκτικής

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

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

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

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

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

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

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

Ψευδοκώδικας. November 7, 2011

Ψευδοκώδικας. November 7, 2011 Ψευδοκώδικας November 7, 2011 Οι γλώσσες τύπου ψευδοκώδικα είναι ένας τρόπος περιγραφής αλγορίθμων. Δεν υπάρχει κανένας τυπικός ορισμός της έννοιας του ψευδοκώδικα όμως είναι κοινός τόπος ότι οποιαδήποτε

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

Ορισµός. Εστω συναρτήσεις: 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: Παραδείγματα Ανάλυσης Πολυπλοκότητας/Ανάλυση Αναδρομικών Αλγόριθμων Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Παραδείγματα Ανάλυσης Πολυπλοκότητας : Μέθοδοι, παραδείγματα

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

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

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

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

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

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

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

11/23/2014. Στόχοι. Λογισμικό Υπολογιστή

11/23/2014. Στόχοι. Λογισμικό Υπολογιστή ονάδα Δικτύων και Επικοινωνιών ΗΥ Τομέας Πληροφορικής, αθηματικών και Στατιστικής ΓΕΩΠΟΙΚΟ ΠΑΕΠΙΣΤΗΙΟ ΑΘΗΩ Εισαγωγή στην Επιστήμη των ΗΥ άθημα-4 url: http://openeclass.aua.gr (AOA0) Λογισμικό Υπολογιστή

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

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

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

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

ΛΟΓΙΚΑ ΔΙΑΓΡΑΜΜΑΤΑ. Γ Λυκείου Κατεύθυνσης Mike Trimos

ΛΟΓΙΚΑ ΔΙΑΓΡΑΜΜΑΤΑ. Γ Λυκείου Κατεύθυνσης Mike Trimos ΛΟΓΙΚΑ ΔΙΑΓΡΑΜΜΑΤΑ Γ Λυκείου Κατεύθυνσης Mike Trimos Βήματα Ανάπτυξης ενός Συστήματος 1.Ορισμός και κατανόηση του προβλήματος 2.Ανάλυση του προβλήματος 3.Σχεδιασμός Αλγοριθμικής Λύσης 4.Κωδικοποίηση 5.Διόρθωση

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

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

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

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

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

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

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

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

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

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

ΑΛΓΟΡΙΘΜΟΙ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ

ΑΛΓΟΡΙΘΜΟΙ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ Έλεγχος πληρότητας: Πρέπει να καταχωρούνται στα δεδομένα ο αριθμός της αίθουσας καθώς και ο όροφος στον οποίο βρίσκεται ώστε να μην υπάρχουν αμφιβολίες σε ποια αίθουσα αντιστοιχεί το εμβαδόν που υπολογίστηκε.

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

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL) (PASCAL ) Εντολές Ελέγχου & Επανάληψης

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL) (PASCAL ) Εντολές Ελέγχου & Επανάληψης Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL) (PASCAL ) Εντολές Ελέγχου & Επανάληψης Εντολές Ελέγχου 2 Γενικά Εντολές λήψης αποφάσεων Επιτρέπουν στο πρόγραμμα να εκτελεί διαφορετικές

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

Α2. Να γράψετε στο τετράδιο σας τον αριθμό 1-4 κάθε πρότασης και δίπλα το γράμμα που δίνει τη σωστή επιλογή.

Α2. Να γράψετε στο τετράδιο σας τον αριθμό 1-4 κάθε πρότασης και δίπλα το γράμμα που δίνει τη σωστή επιλογή. ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ Γ ΤΑΞΗ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ ΚΑΙ ΕΠΑΛ (ΟΜΑΔΑ Β ) ΚΥΡΙΑΚΗ 23/04/2017 - ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΑΕΠΠ ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ: ΕΠΤΑ ( 7) ΘΕΜΑ Α Α1. Να χαρακτηρίσετε τις προτάσεις που ακολουθούν γράφοντας στο

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

Σου προτείνω να τυπώσεις τις επόμενες τέσσερις σελίδες σε ένα φύλο διπλής όψης και να τις έχεις μαζί σου για εύκολη αναφορά.

Σου προτείνω να τυπώσεις τις επόμενες τέσσερις σελίδες σε ένα φύλο διπλής όψης και να τις έχεις μαζί σου για εύκολη αναφορά. AeppAcademy.com facebook.com/aeppacademy Γεια. Σου προτείνω να τυπώσεις τις επόμενες τέσσερις σελίδες σε ένα φύλο διπλής όψης και να τις έχεις μαζί σου για εύκολη αναφορά. Καλή Ανάγνωση & Καλή Επιτυχία

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

Εισαγωγή στην πληροφορική

Εισαγωγή στην πληροφορική Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Αγρονόμων Τοπογράφων Μηχανικών Εισαγωγή στην πληροφορική Βασίλειος Βεσκούκης Δρ. Ηλεκτρολόγος Μηχανικός & Μηχανικός Υπολογιστών ΕΜΠ v.vescoukis@cs.ntua.gr Η γλώσσα προγραμματισμού

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

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

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

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

ιδάσκων: ηµήτρης Ζεϊναλιπούρ

ιδάσκων: ηµήτρης Ζεϊναλιπούρ Κεφάλαιο 1.3-1.4: Εισαγωγή Στον Προγραµµατισµό ( ιάλεξη 2) ιδάσκων: ηµήτρης Ζεϊναλιπούρ Περιεχόµενα Εισαγωγικές Έννοιες - Ορισµοί Ο κύκλος ανάπτυξης προγράµµατος Παραδείγµατα Πότε χρησιµοποιούµε υπολογιστή?

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

Computing. Νοέμβριος Έκδοση 1.0

Computing. Νοέμβριος Έκδοση 1.0 Computing Νοέμβριος 2017 Έκδοση 1.0 Ενότητα Computing Αυτή η ενότητα παραθέτει τις βασικές έννοιες και δεξιότητες που σχετίζονται με την ικανότητα χρήσης υπολογιστικής σκέψης (computational thinking) και

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

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

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

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

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

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

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

Γ7.5 Αλγόριθμοι Αναζήτησης. Γ Λυκείου Κατεύθυνσης

Γ7.5 Αλγόριθμοι Αναζήτησης. Γ Λυκείου Κατεύθυνσης Γ7.5 Αλγόριθμοι Αναζήτησης Γ Λυκείου Κατεύθυνσης Εισαγωγή Αλγόριθμος αναζήτησης θεωρείται ένας αλγόριθμος, ο οποίος προσπαθεί να εντοπίσει ένα στοιχείο με συγκεκριμένες ιδιότητες, μέσα σε μία συλλογή από

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

Θέματα Προγραμματισμού Η/Υ

Θέματα Προγραμματισμού Η/Υ Πρόγραμμα Μεταπτυχιακών Σπουδών Πληροφορική και Υπολογιστική Βιοϊατρική Θέματα Προγραμματισμού Η/Υ Ενότητα 7: Θεματική Ενότητα: Δομές επανάληψης ΘΕΜΑΤΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Η/Υ Θεματική Ενότητα 7 Δομές επανάληψης

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

ΚΕΦΑΛΑΙΟ 1ο 3ο. ΚΕΦΑΛΑΙΟ 5ο 6ο. ΚΕΦΑΛΑΙΟ 7ο. Δομημένος Προγραμματισμός - Γενικές Ασκήσεις Επανάληψης

ΚΕΦΑΛΑΙΟ 1ο 3ο. ΚΕΦΑΛΑΙΟ 5ο 6ο. ΚΕΦΑΛΑΙΟ 7ο. Δομημένος Προγραμματισμός - Γενικές Ασκήσεις Επανάληψης ΚΕΦΑΛΑΙΟ 1ο 3ο 1. Συμπληρώστε τα κενά με τη λέξη που λείπει. α. Ένα πρόβλημα το χωρίζουμε σε άλλα απλούστερα, όταν είναι ή όταν έχει τρόπο επίλυσης. β. Η επίλυση ενός προβλήματος προϋποθέτει την του. γ.

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

1. Πότε χρησιμοποιούμε την δομή επανάληψης; Ποιες είναι οι διάφορες εντολές (μορφές) της;

1. Πότε χρησιμοποιούμε την δομή επανάληψης; Ποιες είναι οι διάφορες εντολές (μορφές) της; 1. Πότε χρησιμοποιούμε την δομή επανάληψης; Ποιες είναι οι διάφορες (μορφές) της; Η δομή επανάληψης χρησιμοποιείται όταν μια σειρά εντολών πρέπει να εκτελεστεί σε ένα σύνολο περιπτώσεων, που έχουν κάτι

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

Προγραμματιστικές Τεχνικές

Προγραμματιστικές Τεχνικές Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Αγρονόμων Τοπογράφων Μηχανικών Προγραμματιστικές Τεχνικές Βασίλειος Βεσκούκης Δρ. Ηλεκτρολόγος Μηχανικός & Μηχανικός Υπολογιστών ΕΜΠ Επικ. Καθηγητής ΕΜΠ v.vescoukis@cs.ntua.gr

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

ΠαράδειγµαΠρογραµµατισµού

ΠαράδειγµαΠρογραµµατισµού Προγραµµατισµός Η/Υ Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Μεθοδολογία Προγραµµατισµού Αφαιρετικότητα Ροή Ελέγχου/ εδοµένων Βιβλίο µαθήµατος: Chapter 1,, Sec. 4-54 ΕΠΛ 131 Αρχές Προγραµµατισµού

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

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

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

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

8 Τεχνικός Εφαρμογών Πληροφορικής με Πολυμέσα

8 Τεχνικός Εφαρμογών Πληροφορικής με Πολυμέσα Περιεχόμενα Πρόλογος... 9 Κεφάλαιο 1: Δομή και λειτουργία του υπολογιστή... 11 Κεφάλαιο 2: Χρήση Λ.Σ. DOS και Windows... 19 Κεφάλαιο 3: Δίκτυα Υπολογιστών και Επικοινωνίας... 27 Κεφάλαιο 4: Unix... 37

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

Μεταγλωττιστές Βελτιστοποίηση

Μεταγλωττιστές Βελτιστοποίηση Μεταγλωττιστές Βελτιστοποίηση Νίκος Παπασπύρου nickie@softlab.ntua.gr Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχ. Υπολογιστών Εργαστήριο Τεχνολογίας Λογισμικού Πολυτεχνειούπολη, 15780

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

Προγραµµατισµός Η/Υ. Μέρος2

Προγραµµατισµός Η/Υ. Μέρος2 Προγραµµατισµός Η/Υ Μέρος2 Περιεχόμενα Επανάληψη Βασικών Σύμβολων Διαγραμμάτων Ροής Αλγόριθμος Ψευδοκώδικας Παραδείγματα Αλγορίθμων Γλώσσες προγραμματισμού 2 Επανάληψη Βασικών Σύμβολων Διαγραμμάτων Ροής

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

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

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

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

Προγραμματισμός Ι (ΗΥ120)

Προγραμματισμός Ι (ΗΥ120) Προγραμματισμός Ι (ΗΥ120) Διάλεξη 10: Ταξινόμηση Πίνακα Αναζήτηση σε Ταξινομημένο Πίνακα Πρόβλημα Δίνεται πίνακας t από Ν ακεραίους. Ζητούμενο: να ταξινομηθούν τα περιεχόμενα του πίνακα σε αύξουσα αριθμητική

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

Πληροφορική ΙΙ Ενότητα 1

Πληροφορική ΙΙ Ενότητα 1 Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Πληροφορική ΙΙ Ενότητα 1: Εισαγωγή Θεματική Ενότητα: Εισαγωγή στον Προγραμματισμό Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός

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

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

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

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

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΑΝΑΠΤΥΞΗ ΚΑΙ ΣΧΕΔΙΑΣΗ ΛΟΓΙΣΜΙΚΟΥ Η γλώσσα προγραμματισμού C ΕΡΓΑΣΤΗΡΙΟ 2: Εκφράσεις, πίνακες και βρόχοι 14 Απριλίου 2016 Το σημερινό εργαστήριο

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

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2 Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2 1. Ο αλγόριθμος είναι απαραίτητος μόνο για την επίλυση προβλημάτων Πληροφορικής 2. Ο αλγόριθμος αποτελείται από ένα πεπερασμένο σύνολο εντολών 3. Ο αλγόριθμος

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

ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΑΡΧΕΣ ΤΗΣ ΕΠΙΣΤΗΜΗΣ ΤΩΝ Η/Υ

ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΑΡΧΕΣ ΤΗΣ ΕΠΙΣΤΗΜΗΣ ΤΩΝ Η/Υ ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΑΡΧΕΣ ΤΗΣ ΕΠΙΣΤΗΜΗΣ ΤΩΝ Η/Υ ΜΕΡΛΙΑΟΥΝΤΑΣ ΣΤΕΦΑΝΟΣ, ΠΕ19 ΚΕΦΑΛΑΙΟ 3 Αλγόριθμοι 3. Αλγόριθμοι 2 3. Αλγόριθμοι 3.1 Η έννοια του αλγορίθμου 3.2 Χαρακτηριστικά αλγορίθμου 3.3 Ανάλυση αλγορίθμων

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

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

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

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

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

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

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

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ. Διδάσκουσα Δρ Β. Καβακλή. Χειμερινό Εξάμηνο 2001

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ. Διδάσκουσα Δρ Β. Καβακλή. Χειμερινό Εξάμηνο 2001 ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΑΛΓΟΡΙΘΜΟΥΣ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ Διδάσκουσα Δρ Β. Καβακλή Χειμερινό Εξάμηνο 2001 1 Ανάλυση προβλήματος Η σωστή αντιμετώπιση

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

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

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

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

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

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

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

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2. Α1. Ο αλγόριθμος είναι απαραίτητος μόνο για την επίλυση προβλημάτων πληροφορικής

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2. Α1. Ο αλγόριθμος είναι απαραίτητος μόνο για την επίλυση προβλημάτων πληροφορικής Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2 Α1. Ο αλγόριθμος είναι απαραίτητος μόνο για την επίλυση προβλημάτων πληροφορικής Α2. Ο αλγόριθμος αποτελείται από ένα πεπερασμένο σύνολο εντολών Α3. Ο αλγόριθμος

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

Προγραμματισμός Ι (HY120)

Προγραμματισμός Ι (HY120) Προγραμματισμός Ι (HY20) # μνήμη & μεταβλητές πρόγραμμα & εκτέλεση Ψηφιακά δεδομένα, μνήμη, μεταβλητές 2 Δυαδικός κόσμος Οι υπολογιστές είναι δυαδικές μηχανές Όλη η πληροφορία (δεδομένα και κώδικας) κωδικοποιείται

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

ΜΥΥ105: Εισαγωγή στον Προγραμματισμό. Αναζήτηση και Ταξινόμηση Χειμερινό Εξάμηνο 2016

ΜΥΥ105: Εισαγωγή στον Προγραμματισμό. Αναζήτηση και Ταξινόμηση Χειμερινό Εξάμηνο 2016 ΜΥΥ105: Εισαγωγή στον Προγραμματισμό Αναζήτηση και Ταξινόμηση Χειμερινό Εξάμηνο 2016 Αναζήτηση και Ταξινόμηση Βασικές λειτουργίες σε προγράμματα Αναζήτηση (searching): Βρες ένα ζητούμενο στοιχείο σε μια

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

Εντολή Δεδομένα Περιεχόμενα μετά την εκτέλεση 1 read(x) 122 x= 2 read(a,b,c) 133 244 355 a= b= c= 3 read(d,e) 166 277 3888

Εντολή Δεδομένα Περιεχόμενα μετά την εκτέλεση 1 read(x) 122 x= 2 read(a,b,c) 133 244 355 a= b= c= 3 read(d,e) 166 277 3888 ΕΡΩΤΗΣΕΙΣ 1. Να αναφέρετε μερικά από τα ιδιαίτερα χαρακτηριστικά της Pascal. 2. Ποιο είναι το αλφάβητο της Pascal; 3. Ποια είναι τα ονόματα-ταυτότητες και σε τι χρησιμεύουν; 4. Σε τι χρησιμεύει το συντακτικό

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

ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python

ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ ΠΛΗΡΟΦΟΡΙΚΗ ΤΕΧΝΟΛΟΓΙΑ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Εισαγωγή στη Python Νικόλαος Ζ. Ζάχαρης Αναπληρωτής

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

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

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

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

Μεταγλωττιστές Βελτιστοποίηση

Μεταγλωττιστές Βελτιστοποίηση Βελτιστοποίηση (i) Μεταγλωττιστές Βελτιστοποίηση Νίκος Παπασπύρου nickie@softlab.ntua.gr Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχ. Υπολογιστών Εργαστήριο Τεχνολογίας Λογισμικού Πολυτεχνειούπολη,

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 8: Αναζήτηση και ταξινόμηση

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 8: Αναζήτηση και ταξινόμηση ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 8: Αναζήτηση και ταξινόμηση Μιχάλης Δρακόπουλος Σχολή Θετικών επιστημών Τμήμα Μαθηματικών Αναζήτηση και ταξινόµηση 7 Αναζήτηση (search) Πρόβληµα: αναζήτηση της καταχώρησης key στη

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

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

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

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

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

ΕΠΛ 003: ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΑ ΣΥΣΤΗΜΑΤΑ ΕΠΛ 003: ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΑ ΣΥΣΤΗΜΑΤΑ Δρ. Κουζαπάς Δημήτριος Πανεπιστήμιο Κύπρου - Τμήμα Πληροφορικής Προγραμματισμός Στόχοι 1 Να περιγράψουμε τις έννοιες του Υπολογιστικού Προβλήματος

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

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

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

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

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

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

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

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

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

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

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

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

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

Μαθησιακές δυσκολίες ΙΙ. Παλαιγεωργίου Γιώργος Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστών Τηλεπικοινωνιών και Δικτύων, Πανεπιστήμιο Θεσσαλίας

Μαθησιακές δυσκολίες ΙΙ. Παλαιγεωργίου Γιώργος Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστών Τηλεπικοινωνιών και Δικτύων, Πανεπιστήμιο Θεσσαλίας Μαθησιακές δυσκολίες ΙΙ Παλαιγεωργίου Γιώργος Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστών Τηλεπικοινωνιών και Δικτύων, Πανεπιστήμιο Θεσσαλίας Μάρτιος 2010 Προηγούμενη διάλεξη Μαθησιακές δυσκολίες Σε όλες

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

ΕΠΛ 001: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Προγραμματισμός

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

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

Κεφάλαιο : Εισαγωγή Στον Προγραμματισμό. (Διάλεξη 2) ΕΠΛ 032: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕΘΟΔΩΝ ΕΠΙΛΥΣΗΣ ΠΡΟΒΛΗΜΑΤΩΝ. Περιεχόμενα

Κεφάλαιο : Εισαγωγή Στον Προγραμματισμό. (Διάλεξη 2) ΕΠΛ 032: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕΘΟΔΩΝ ΕΠΙΛΥΣΗΣ ΠΡΟΒΛΗΜΑΤΩΝ. Περιεχόμενα Κεφάλαιο 1.3-1.4: Εισαγωγή Στον Προγραμματισμό (Διάλεξη 2) Περιεχόμενα Εισαγωγικές Έννοιες - Ορισμοί Ο κύκλος ανάπτυξης προγράμματος Παραδείγματα 1 Πότε χρησιμοποιούμε υπολογιστή? Χρήση υπολογιστή αν:

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

Ανάλυση της Ορθότητας Προγραμμάτων (HR Κεφάλαιο 4)

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

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

ΔΙΔΑΚΤΙΚΗ της ΠΛΗΡΟΦΟΡΙΚΗΣ

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

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

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

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

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

Προγραμματισμός Ι (ΗΥ120)

Προγραμματισμός Ι (ΗΥ120) Προγραμματισμός Ι (ΗΥ120) Διάλεξη 1: Εισαγωγή Ποιος είμαι εγώ! 2 Ναύπλιο, 4/1976-9/1993 Πάτρα, 9/1993-6/2004 Williamsburg, VA, USA, 7/2004-7/2006 Μυτιλήνη, 10/2006-2/2007 Βόλος, 2/2007 - H Υπεύθυνη των

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

Περιεχόµενα. Ανασκόπηση - Ορισµοί. Ο κύκλος ανάπτυξης προγράµµατος. Γλώσσες Προγραµµατισµού Ασκήσεις

Περιεχόµενα. Ανασκόπηση - Ορισµοί. Ο κύκλος ανάπτυξης προγράµµατος. Γλώσσες Προγραµµατισµού Ασκήσεις Προγραµµατισµός Η/Υ Ανασκόπηση - Ορισµοί Περιεχόµενα Ο κύκλος ανάπτυξης προγράµµατος Περιγραφή προβλήµατος Ανάλυση προβλήµατος Λογικό ιάγραµµα Ψευδοκώδικας Κωδικοποίηση Συντήρηση Γλώσσες Προγραµµατισµού

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

Τεχνικές Αναπαράστασης αλγορίθµων Ψευδοκώδικας Διάγραµµα Ροής Αλγοριθµικές δοµές (Ακολουθία Επιλογή Επανάληψη)

Τεχνικές Αναπαράστασης αλγορίθµων Ψευδοκώδικας Διάγραµµα Ροής Αλγοριθµικές δοµές (Ακολουθία Επιλογή Επανάληψη) Τεχνικές Αναπαράστασης αλγορίθµων Διάγραµµα Ροής Αλγοριθµικές δοµές (Ακολουθία Επιλογή ) 1 Βασικές έννοιες Τυποποίηση αναπαράστασης αλγορίθµου - Ανάγκη ύπαρξης ενός κοινού τρόπου αναπαράστασης αλγορίθµων

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

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

Διαδικαστικός Προγραμματισμός Διαδικαστικός Προγραμματισμός Ενότητα 3: Εντολές ελέγχου επανάληψη Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό,

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

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

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

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

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

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

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

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

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

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

Προγραμματισμός Η/Υ (ΤΛ2007 )

Προγραμματισμός Η/Υ (ΤΛ2007 ) Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε.Ι. Κρήτης Προγραμματισμός Η/Υ (ΤΛ00 ) Δρ. Μηχ. Νικόλαος Πετράκης (npet@chania.teicrete.gr) Ιστοσελίδα Μαθήματος: https://eclass.chania.teicrete.gr/ Εξάμηνο: Εαρινό 01-15

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

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

ΠΡΟΤΕΙΝΟΜΕΝΑ ΘΕΜΑΤΑ ΔΟΜΗΜΕΝΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Γ ΕΠΑΛ ΠΡΟΤΕΙΝΟΜΕΝΑ ΘΕΜΑΤΑ ΔΟΜΗΜΕΝΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Γ ΕΠΑΛ ΘΕΜΑ Α Α.1 Να χαρακτηρίσετε σωστή (Σ) ή λανθασμένη (Λ) καθεμία από τις παρακάτω προτάσεις (Μονάδες 10) 1. Ένας αλγόριθμος μπορεί να έχει άπειρα βήματα

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