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

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

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

Transcript

1 Σχολή Τεχνολογικών Εφαρμογών Τμήμα Πολιτικών Μηχανικών ΤΕ και Μηχανικών Τοπογραφίας και Γεωπληροφορικής TE Διάλεξη στο μάθημα Εφαρμοσμένη Πληροφορική ΙΙ Δομές Δεδομένων και Αλγόριθμοι

2 Πηγές - Βιβλιογραφία Διαφάνειες Βιβλιογραφία Ε. Στεφανάκη, (2003). Βάσεις Γεωγραφικών Δεδομένων και Συστήματα Γεωγραφικών Πληροφοριών, Εκδόσεις Παπασωτηρίου

3 Περιεχόμενα Αλγόριθμοι Ορισμός, Δομή και Περιγραφή Αλγορίθμου ψευδοκώδικας, πηγαίος κώδικας, διάγραμμα ροής δεδομένων Βασικές Δομές Δεδομένων πίνακες, εγγραφές, συνδεδεμένες λίστες, στοίβες, ουρές, δένδρα Δομημένος Προγραμματισμός Βασικές Αλγοριθμικές Δομές Δομή Ακολουθίας Δομή Επιλογής (απλή, σύνθετη, εμφωλευμένη επιλογή) Δομή Επανάληψης (με έλεγχο επανάληψης στην αρχή, στο τέλος και με ορισμένες φορές επανάληψης)

4 Αλγόριθμοι Αλγόριθμος... Η περιγραφή της επίλυσης ενός προβλήματος π.χ., εύρεση των ριζών ενός πολυωνύμου (x 2-3x-4) Η περιγραφή είναι κατανοητή από τους ανθρώπους (όχι από τους Η/Υ) Στην πληροφορική... Ένας αλγόριθμος αποτελεί την περιγραφή της μεθόδου επίλυσης ενός προβλήματος, η οποία μπορεί να υλοποιηθεί σε έναν Η/Υ

5 Αλγόριθμοι Ένας αλγόριθμος περιλαμβάνει... Δεδομένα και Υπολογισμούς Οι περισσότεροι αλγόριθμοι... εμπλέκουν μεθόδους οργάνωσης των δεδομένων που εμπλέκονται στους υπολογισμούς οι μέθοδοι αυτές καλούνται Δομές Δεδομένων Λόγω της παραπάνω σχέσης... Αλγόριθμοι και δομές δεδομένων... πάνε μαζί...

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

7 Αλγόριθμοι Ένα παράδειγμα... Έστω ο έντυπος τηλεφωνικός κατάλογος των συνδρομητών του ΟΤΕ Ζητάµε ένα αλγόριθμο αναζήτησης του τηλεφώνου ενός συνδρομητή Τα δεδομένα (ονόματα, τηλέφωνα συνδρομητών) δομούνται είτε τυχαία ή αλφαβητικά Αν δομούνται τυχαία... Πρέπει να ξεκινήσουμε από την πρώτη σελίδα και να ψάξουµε τα ονόματα ένα προς ένα μέχρι να βρούμε αυτό που ζητάµε Διαφορετικά (αν δομούνται αλφαβητικά ταξινομημένα) Μπορούμε να εφαρμόζουμε πιο έξυπνη αναζήτηση (αλγόριθμο), π.χ., να ανοίξουµε τη μεσαία σελίδα του καταλόγου και να περιορίσουµε την αναζήτηση στο μισό κατάλογο, κοκ.

8 Δομή ενός αλγορίθμου Ένας αλγόριθμος περιλαμβάνει τρία τμήματα... Κεφαλή Περιλαμβάνει το όνοµα και τον κατάλογο των δεδομένων (εισόδου/εξόδου) Τμήμα δηλώσεων των μεταβλητών Περιγραφή των εσωτερικών μεταβλητών (δεδομένων) του αλγορίθμου Κυρίως τμήμα Περιγραφή των πράξεων (υπολογισμών) που εκτελούνται πάνω στα δεδομένα

9 Περιγραφή ενός Αλγορίθμου Ένας αλγόριθμος περιγράφεται... Με λεκτική περιγραφή... Ψευδοκώδικας Πλησιάζει στη φυσική γλώσσα Κατανοητός και από µη προγραμματιστές Γλώσσα προγραμματισμού Τυποποιημένη γλώσσα Κατανοητή από προγραμματιστές και Η/Υ Διαγραμματικά... Διάγραμμα ροής Εφαρμόζει γραφικά δομικά στοιχεία Εύκολη οπτικοποίηση της ροής του αλγορίθμου

10 Περιγραφή ενός Αλγορίθμου Παράδειγμα αλγορίθμου... Εύρεση του μέσου όρου των θετικών αριθμών ενός πίνακα Ν ακεραίων P N = 7 (πλήθος ακεραίων) Κ = 4 (πλήθος θετικών) MO = ( )/4 = 4.75

11 Περιγραφή ενός Αλγορίθμου Παράδειγμα Ψευδοκώδικα ΑΛΓΟΡΙΘΜΟΣ ΕΥΡΕΣΗΣ ΜΕΣΟΥ ΟΡΟΥ ΤΩΝ ΘΕΤΙΚΩΝ ΑΡΙΘΜΩΝ ΕΝΟΣ ΠΙΝΑΚΑ Ν ΑΚΕΡΑΙΩΝ ΔΕΔΟΜΕΝΑ P:ΠΙΝΑΚΑΣ[1,...,Ν] ΑΚΕΡΑΙΩΝ Ν,Ι,K,Μ ΑΚΕΡΑΙΟΙ ΜΟ ΠΡΑΓΜΑΤΙΚΟΣ ΑΡΧΗ Μ:=0 /*ΑΡΧΙΚΟΠΟΙΗΣΗ ΜΕΤΑΒΛΗΤΩΝ */ K:=0 ΓΙΑ Ι:=1 ΕΩΣ Ν ΕΠΑΝΕΛΑΒΕ ΕΑΝ P[I]>0 TOTE /* ΕΛΕΓΧΟΣ ΑΝ ΕΙΝΑΙ ΘΕΤΙΚΟΣ */ Μ:=Μ+P[I] K:=K+1 ΕΑΝ-ΤΕΛΟΣ ΓΙΑ-ΤΕΛΟΣ ΜΟ:=Μ/Κ /* ΥΠΟΛΟΓΙΜΣΟΣ ΜΕΣΟΥ ΟΡΟΥ */ ΕΚΤΥΠΩΣΕ(ΜΟ) ΤΕΛΟΣ

12 Περιγραφή ενός Αλγορίθμου Παράδειγμα γλώσσας προγ/σμού C #include <stdio.h> void find_mean(int P[N], int N) { int I,K,M; /* ΗΛΩΣΗ ΜΕΤΑΒΛΗΤΩΝ */ float MO; Μ=0; K=0; /*ΑΡΧΙΚΟΠΟΙΗΣΗ ΜΕΤΑΒΛΗΤΩΝ */ for (I=0; I<N; I++) { if (P[I]>0) /* ΕΛΕΓΧΟΣ ΑΝ ΕΙΝΑΙ ΘΕΤΙΚΟΣ */ { Μ=Μ+P[I]; K=K+1; } } ΜΟ:=Μ/Κ; /* ΥΠΟΛΟΓΙΜΣΟΣ ΜΕΣΟΥ ΟΡΟΥ */ printf( MO = %f\n, ΜΟ); }

13 Περιγραφή ενός Αλγορίθμου Παράδειγμα διαγράμματος ροής ΑΡΧΗ I<=N ΟΧΙ MO=M/K ΔΙΑΒΑΣΕ P, N P[I]>0 ΝΑΙ ΟΧΙ ΤΥΠΩΣΕ ΜΟ M=0, K=0 ΝΑΙ M=M+P[I] K=K+1 ΤΕΛΟΣ I=1 I=I+1

14 Βασικές Δομές Δεδομένων Δομές Δεδομένων... (οι τρόποι οργάνωσης των δεδομένων για επεξεργασία από προγράμματα Η/Υ) Πίνακες (arrays) Εγγραφές (records) Συνδεδεμένες λίστες (linked lists) Ουρές (queues) Στοίβες (stacks) Δένδρα (trees)

15 Πίνακες Μονοδιάστατος Πίνακας Ένας καθορισμένος αριθμός από στοιχεία του ίδιου τύπου (ακέραιοι, χαρακτήρες, κά.) που αποθηκεύονται στη σειρά Η πρόσβαση σε κάθε στοιχείο επιτυγχάνεται µε ένα δείκτη π.χ., ένας πίνακας ακεραίων 7 θέσεων... P 1ο στοιχείο 2ο στοιχείο Η ανάκτηση του i στοιχείου του πίνακα επιτυγχάνεται µέσω της αναφοράς P[i] (π.χ., P[4] = 5) (άμεση!) Τα στοιχεία του πίνακα αποθηκεύονται σε γειτονικές θέσεις μνήμης (αυτό εξασφαλίζει την άμεση πρόσβαση)

16 Πίνακες Δυσδιάστατος Πίνακας 1η γραμμή 2η γραμμή Ένας καθορισμένος αριθμός από στοιχεία του ίδιου τύπου που οργανώνονται σε γραμμές/στήλες Η πρόσβαση σε κάθε στοιχείο επιτυγχάνεται µε ένα ζεύγος δεικτών (γραμμή, στήλη του πίνακα) π.χ., ένας πίνακας ακεραίων 3 γραμμών /7 στηλών... P 1η στήλη 2η στήλη

17 Πίνακες Δυσδιάστατος Πίνακας Η ανάκτηση του i,j στοιχείου του πίνακα επιτυγχάνεται µέσω της αναφοράς P[i][j] (π.χ., P[2][3] = 1) Η αναπαράσταση του πίνακα στη µνήµη επιτυγχάνεται µε γραμμικοποίησή του είτε κατά γραμμές ή κατά στήλες

18 Πίνακες Πολυδιάστατοι πίνακες Κατά επέκταση ορίζονται οι πίνακες 3 ή περισσοτέρων διαστάσεων... Ειδικοί πίνακες Οι πίνακες αυτοί έχουν κάποια χαρακτηριστική ιδιότητα π.χ., είναι διαγώνιοι, τριγωνικοί, συμμετρικοί, αραιοί, κλπ. Την ιδιότητα αυτή μπορούμε να την εκμεταλλευτούμε για τη μείωση του χώρου αποθήκευσης...

19 Εγγραφές Ορισμός Μια συλλογή ενός καθορισμένου πλήθους αλληλοσυσχετιζόμενων στοιχείων (πεδίων) διαφορετικού τύπου π.χ., η εγγραφή ενός συνδρομητή του ΟΤΕ Επώνυμο Όνομα Διεύθυνση Τηλέφωνο ΑΑΑ ΒΒΒ ΓΓΓ 111

20 Εγγραφές Πίνακας εγγραφών Αποτελεί ένα συνδυασμό των δομών: πίνακα και εγγραφής π.χ., ο πίνακας εγγραφών των συνδρομητών του ΟΤΕ Επώνυμο Όνομα Διεύθυνση Τηλέφωνο ΑΑΑ ΒΒΒ ΓΓΓ 111 ΔΔΔ ΕΕΕ ΖΖΖ 222 ΗΗΗ ΘΘΘ ΚΚΚ 333 Παράδειγμα πρόσβασης σε ένα στοιχείο του πίνακα εγγραφών Εγγραφή[i].Στοιχείο_εγγραφής π.χ., Εγγραφή[2].Διεύθυνση= ΖΖΖ

21 Συνδεδεμένες Λίστες Συνδεδεμένη λίστα... Μια πεπερασμένη ακολουθία στοιχείων του ίδιου τύπου (όμοια με τους πίνακες) Κάθε στοιχείο αποτελεί τμήμα ενός κόμβου, ο οποίος διαθέτει ένα δείκτη σε επόμενο κόμβο Βασικό στοιχείο ορισμού της λίστας είναι ο κεφαλή δείκτης στον πρώτο κόμβο (κεφαλή) Α. Β. Γ. Δ. Σε αντίθεση με τους πίνακες οι κόμβοι μιας λίστας αποθηκεύονται σε τυχαίες θέσεις στη μνήμη

22 Συνδεδεμένες Λίστες Πλεονεκτήματα σε σχέση µε τους πίνακες Όχι προκαθορισμένο μέγιστο μέγεθος Ανάγκες σε χωρητικότητα ανάλογα µε το πλήθος των στοιχείων Επέκταση της λίστας ανάλογα με το διαθέσιμο χώρο (αποφυγή overflow) Εύκολη (γρήγορη) ενημέρωση της λίστας Απλή αναδιάταξη των στοιχείων µε αναδιάταξη των δεικτών Απλή εισαγωγή/διαγραφή στοιχείων (αποφυγή των πολλαπλών μεταθέσεων στοιχείων)

23 Συνδεδεμένες Λίστες κεφαλή Παράδειγμα αναδιάταξης ([ΑΒΓ ] [ΑΓΒ ]) Α. Β. Γ. Δ. κεφαλή Παραδείγματα εισαγωγής/διαγραφής στοιχείων Α. Β. Γ. Δ. κεφαλή Ε. Α. Β. Γ. Δ.

24 Συνδεδεμένες Λίστες κεφαλή Βασικό μειονέκτημα σε σχέση µε πίνακες Η πρόσβαση σε ένα στοιχείο της λίστας γίνεται σειριακά... ξεκινώντας από την κεφαλή κι ακολουθώντας τους κόμβους μέσω των δεικτών οπότε επίσκεψη 4 κόμβων για την ανάκτηση του Α. Β. Γ. Δ. P Σε μια αναπαράσταση πίνακα η πρόσβαση είναι άμεση P[4] Α Β Γ Δ

25 Συνδεδεμένες Λίστες Άλλοι τύποι... κεφαλή Διπλά συνδεδεμένη λίστα. Α.. Β.. Γ.. Δ. κεφαλή Κυκλική συνδεδεμένη λίστα Α. Β. Γ. Δ.

26 Στοίβες Η στοίβα... Αποτελεί έναν ειδικό τύπο λίστας/πίνακα με περιορισμένες δυνατότητες λειτουργιών (πράξεων) Επιτρέπει μόνο εισαγωγές και διαγραφές κόμβων στο ένα της άκρο (κορυφή ή ελεύθερο άκρο) Κάθε στιγμή επιτρέπεται είτε η εισαγωγή (push) ενός στοιχείου στην κορυφή ή η διαγραφή (pop) ενός στοιχείου από την κορυφή Λογική... LIFO (Last-In-First-Out) Η υλοποίηση επιτυγχάνεται είτε με συνδεδεμένη λίστα ή με πίνακα

27 Στοίβες Εικονική αναπαράσταση (σε πίνακα) ένας δείκτης: κορυφή Push(A) Push(B) Push(Γ) Pop() κορυφή Β κορυφή Γ Β κορυφή Β κορυφή κορυφή Α Α Α Α

28 Στοίβες Παράδειγμα (εφαρμογή) 5 x ( ( ( ) x ( 6-4 ) ) + 12 ) =? Η στοίβα αποτελεί ιδανική δομή για την επίλυση η σειρά εκτέλεσης των πράξεων καθορίζεται από τις παρενθέσεις η επεξεργασία αρχίζει από αριστερά προς τα δεξιά (ή αντίστροφα)

29 Στοίβες Παράδειγμα (εφαρμογή) 5 x ( ( ( ) x ( 6-4 ) ) + 12 ) =? Push(5) Push(7) Push(3) Push(Pop() + Pop()) Push(6) Push(4) Push(Pop() - Pop()) Push(Pop() x Pop()) Push(12) Push(Pop() + Pop()) Push(Pop() x Pop()) Print(Pop())

30 Ουρές Η ουρά Παρόμοια δομή µε τη στοίβα Δύο βασικές πράξεις εισαγωγές και διαγραφές κόμβων Όμως οι εισαγωγές (push) στο ένα άκρο της λίστας (την ουρά) οι διαγραφές (pop) από το άλλο (την κορυφή) Λογική FIFO (First-In-First-Out) ανάλογο της εξυπηρέτησης πελατών στην τράπεζα

31 Ουρές Εικονική αναπαράσταση (σε πίνακα) δύο δείκτες: κορυφή, ουρά Push(A) Push(B) Push(Γ) Pop() ουρά κορυφή ουρά κορυφή Α ουρά κορυφή Β Α ουρά κορυφή Γ Β Α ουρά κορυφή Γ Β Α

32 Δένδρα Όλες οι προηγούμενες δομές είναι γραμμικές (ή μονοδιάστατες) όλα τα στοιχεία τοποθετούνται διαδοχικά το ένα μετά το άλλο Τα δένδρα αποτελούν μη-γραμμικές (ή δυσδιάστατες) δομές έστω μια συνδεδεμένη λίστα στην οποία κάθε κόμβος μπορεί να δείχνει σε περισσότερους από έναν κόμβους...

33 Δένδρα Το δένδρο αποτελείται από κόμβους (nodes) μπορεί να έχει ένα όνομα και να φιλοξενεί σχετικές πληροφορίες ακμές (edges) μια κατευθυνόμενη σύνδεση μεταξύ δύο κόμβων ο κόμβος εκκίνησης καλείται πατέρας (πρόγονος) και ο κόμβος τερματισμού παιδί (απόγονος)

34 Δένδρα Σε ένα δένδρο ορίζονται μονοπάτια μια λίστα διακριτών κόμβων του δένδρου που συνδέονται με ακμές Κάθε δένδρο έχει μια ρίζα (μοναδική) από τη ρίζα ξεκινούν ακμές ενώ σε αυτήν δεν καταλήγει καμία ακμή υπάρχει ένα μοναδικό μονοπάτι από τη ρίζα σε κάθε κόμβο του δένδρου η πρόσβαση στους κόμβους του δένδρου γίνεται µόνο µέσω της ρίζας

35 Δένδρα Κάθε δένδρο έχει κόμβους φύλλα στους οποίους καταλήγουν ακμές, ενώ από αυτούς δεν ξεκινάνε ακμές ενδιάμεσους κόμβους στους οποίους καταλήγουν ακμές και από τους οποίους ξεκινάνε ακμές

36 Δένδρα Βαθμός κόμβου καλείται το πλήθος των παιδιών του Ύψος δένδρου το μεγαλύτερο (σε πλήθος κόμβων) μονοπάτι από τη ρίζα σε ένα φύλλο του δένδρου Κάθε κόμβος του δένδρου αποτελεί τη ρίζα ενός υποδένδρου το οποίο φιλοξενεί όλους τους απογόνους του

37 Δένδρα ρίζα Α επίπεδο = 0 ΒΔΙΜ = μονοπάτι Β Γ υποδένδρο βαθμός = 3 Δ Ε Ζ ύψος = 5 Η Θ Ι Κ Λ Μ επίπεδο = 4 Κόμβοι φύλλα: {Η, Θ, Μ, Ε, Κ, Λ}

38 Δένδρα Δυαδικό δένδρο... ένα δένδρο με βαθμό 2 για κάθε κόμβο Β Α Γ Δομή κόμβου Α Δ Ε Ζ Η Δείκτης στο αριστερό παιδί Δείκτης στο δεξιό παιδί

39 Δένδρα Πλήρες δένδρο όλα τα επίπεδα (ίσως εκτός από το τελευταίο) έχουν το μέγιστο δυνατό αριθμό κόμβων Πλήρες δυαδικό δένδρο Β Α Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο

40 Δομημένος Προγραμματισμός αναπτύχθηκε από την ανάγκη να υπάρχει μια κοινή μεθοδολογία στην ανάπτυξη των προγραμμάτων και τη μείωση των εντολών GOTO που παραδοσιακά χρησιμοποιούνταν στηρίζεται στη χρήση τριών στοιχειωδών λογικών δομών: τη δομή της Ακολουθίας τη δομή της Επιλογής τη δομή της Επανάληψης όλα τα προγράμματα μπορούν να γραφούν χρησιμοποιώντας μόνον αυτές τις τρεις δομές καθώς και συνδυασμό τους

41 Δομημένος Προγραμματισμός Πλεονεκτήματα: Δημιουργία απλούστερων προγραμμάτων Άμεση μεταφορά των αλγορίθμων σε προγράμματα Διευκόλυνση ανάλυσης του προγράμματος σε τμήματα Περιορισμός των λαθών κατά την ανάπτυξη του προγράμματος Διευκόλυνση στην ανάγνωση και κατανόηση του προγράμματος από τρίτους Ευκολότερη διόρθωση και συντήρηση

42 Δομή Ακολουθίας χρησιμοποιείται πρακτικά για την αντιμετώπιση απλών προβλημάτων όπου είναι δεδομένη η σειρά εκτέλεσης ενός συνόλου ενεργειών scanf( %d,&a); scanf( %b,&b); c = a + b; printf( %d,c);

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

44 Δομή Επιλογής απλή επιλογή if (x > 0) printf( x is positive ); σύνθετη επιλογή if (x > 0) else printf( x is positive ); printf( x negative or zero );

45 Δομή Επιλογής εμφωλευμένη επιλογή if (x > 0) printf( x is positive ); else if (x == 0) printf( x is zero ); else printf( x negative );

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

47 Δομή Επανάληψης επαναληπτικό σχήμα με έλεγχο επανάληψης στην αρχή είναι το πιο γενικό σχήμα επαναληπτικής δομής (while) και μπορεί να εκτελεσθεί από καθόλου μέχρι όσες φορές θέλουμε sum = 0; scanf( %i,&x); while (x!= 0) { sum = sum + x; scanf( %i,&x); } printf( %i,sum);

48 Δομή Επανάληψης επαναληπτικό σχήμα με έλεγχο επανάληψης στο τέλος το σχήμα αυτής της επαναληπτικής δομής (do-while) έχει το χαρακτηριστικό να εκτελείται οπωσδήποτε μία φορά, επειδή ο έλεγχος της συνθήκης τερματισμού γίνεται στο τέλος do { printf( 1. ΕΙΣΑΓΩΓΗ\n ); printf( 2. ΔΙΑΓΡΑΦΗ\n ); printf( 3. ΕΜΦΑΝΙΣΗ\n ); printf( 4. ΕΞΟΔΟΣ\n ); printf( Δώσε επιλογή: ); scanf( %i,&x); switch (x) { case 1: printf( ΕΙΣΑΓΩΓΗ ); break; case 2: printf( ΔΙΑΓΡΑΦΗ ); break; case 3: printf( ΕΜΦΑΝΙΣΗ ); break; } }while (x!= 4);

49 Δομή Επανάληψης επαναληπτικό σχήμα ορισμένων φορών επανάληψης Το τρίτο σχήμα επαναληπτικής δομής (for) χρησιμοποιείται όταν το πλήθος των επαναλήψεων είναι εκ των προτέρων γνωστό άθροισμα = 0; Για i=0 έως i=9 Διάβασε x άθροισμα = άθροισμα + x; i = i + 1 Τέλος για Εκτύπωσε x

50 Αναδρομή Η αναδρομή αποτελεί µια βασική έννοια... στα μαθηματικά και την πληροφορική Ορισμός... Ένα πρόγραμμα (αλγόριθμος ή συνάρτηση) είναι αναδρομικό όταν... καλεί τον εαυτό του Είναι απαραίτητη η παρουσία... μιας συνθήκης τερματισμού, η οποία διακόπτει την επόμενη κλήση (όταν ικανοποιηθεί)...

51 Αναδρομή Παράδειγμα... Η συνάρτηση προσδιορισμού του παραγοντικού ακεραίου Ν! = Ν x (N-1)!, για Ν 1 µε 0! = 1 π.χ., 5! = 5 x 4! = = 5 x 4 x 3! = = 5 x 4 x 3 x 2! = = 5 x 4 x 3 x 2 x 1!= = 5 x 4 x 3 x 2 x 1 x 0! = = 5 x 4 x 3 x 2 x 1 x 1 = 120

52 Αναδρομή Ο αναδρομικός αλγόριθμος σε C int factorial(int N) { if ( N == 0) return 1; return N * factorial(n-1); } Η υλοποίηση όμως μπορεί να γίνει χωρίς αναδρομή int factorial(int N) { int I, K = 1; for (I = 2; I <= N; I++) { K = K * I; } return K; }

53 Ανάλυση Αλγορίθμων Τα περισσότερα προβλήματα... Μπορούν να επιλυθούν με διαφορετικούς αλγορίθμους... Το ζητούμενο είναι... Ποιος είναι ο πιο αποτελεσματικός; Εφαρμόζουμε κάποιους δείκτες... Για την αξιολόγηση της αποτελεσματικότητας... Π.χ., χρόνος εκτέλεσης (εξαρτάται από τη μηχανή) πλήθος πράξεων (π.χ., συγκρίσεων, πολλαπλασιασμών)

54 Ανάλυση Αλγορίθμων Συνήθως, η λύση ενός προβλήματος δεν «κοστίζει» πάντοτε το ίδιο... π.χ., σε μια σειριακή αναζήτηση ενός αριθμού από ένα πίνακα Ν αριθμών έχουμε... Στην καλύτερη περίπτωση μία πράξη (αν ο αριθμός που ψάχνουμε βρίσκεται στην αρχή) Στη δυσμενέστερη περίπτωση Ν πράξεις (αν ο αριθμός βρίσκεται στο τέλος του πίνακα) Στη μέση περίπτωση Ν/2 πράξεις (συγκρίσεις) Επικεντρώνουμε το ενδιαφέρον µας... Στη δυσμενέστερη περίπτωση...

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

56 Ανάλυση Αλγορίθμων Οι αλγόριθμοι που εξετάζουμε... έχουν χρόνο εκτέλεσης (χειρότερη περίπτωση) ανάλογο των ακόλουθων συναρτήσεων... Κ σταθερός χρόνος και ανεξάρτητος των δεδομένων logn λογαριθμικός χρόνος των δεδομένων Ν γραμμικός χρόνος ανάλογος των δεδομένων ΝlogN Ν φορές λογαριθμικός αλγόριθμος Ν2 τετραγωνικός αλγόριθμος Ν3 κυβικός αλγόριθμος 2Ν εκθετικός αλγόριθμος

57 Αλγόριθμοι Ταξινόμησης Το πρόβλημα... Δίνεται... ένα πλήθος στοιχείων σε τυχαία διάταξη αποθηκευμένα σε ένα γραμμικό πίνακα Ζητείται... η ταξινόμησή τους με βάση κάποιο κανόνα (π.χ., αύξουσα τάξη μεγέθους) Βέλτιστη πολυπλοκότητα... Ο(ΝlogN)

58 Αλγόριθμοι Ταξινόμησης Ταξινόμηση με καταμέτρηση... Αλγόριθμος... Σύγκριση κάθε στοιχείου µε όλα τα υπόλοιπα Καταμέτρηση του πλήθους αυτών που προηγούνται Υπολογισμός της θέσης του στοιχείου στην ταξινομημένη διάταξη Πολυπλοκότητα: Ο(Ν 2 ) σε μια αύξουσα διάταξη το 3ο στοιχείο (μετά τα 1,2)

59 Αλγόριθμοι Ταξινόμησης Ταξινόμηση με επιλογή... Αλγόριθμος... Σαρώνουμε επανειλημμένα τα στοιχεία από την αρχή μέχρι το τέλος Κατά τη σάρωση K... Επιλέγουµε τον ελάχιστο ακέραιο από τους Α[K],,A[N] Τον αντιμεταθέτουμε µε τον Α[Κ] Αποτέλεσμα της σάρωσης Κ: οι Α[1], Α[2],..., Α[Κ] είναι ταξινομημένοι

60 Αλγόριθμοι Ταξινόμησης Ταξινόμηση με επιλογή... Παράδειγμα Πολυπλοκότητα: Ο(Ν 2 ) Κ=1 Κ=2 Κ=3 Κ=4 Κ=5 Κ=6

61 Αλγόριθμοι Ταξινόμησης Γρήγορη Ταξινόμηση (quick sort) Βασίζεται στην ιδέα του «διαίρει και βασίλευε» (divide and conquer) Το πρόβλημα «σπάει» σε μικρότερα προβλήματα, το καθένα από τα οποία «σπάει» σε ακόμη μικρότερα, κοκ. Η λύση του αρχικού προβλήματος προκύπτει από κατάλληλο συνδυασμό των λύσεων των μικρότερων προβλημάτων

62 Αλγόριθμοι Ταξινόμησης Γρήγορη Ταξινόμηση (quick sort) Αλγόριθμος... Επιλέγουµε ένα στοιχείο, το στοιχείο άξονα (pivot) Αναδιατάσσουμε τα υπόλοιπα στοιχεία έτσι ώστε» Αριστερά του άξονα να βρίσκονται τα μικρότερα Δεξιά του άξονα τα μεγαλύτερα Επαναλαμβάνουμε τη διαδικασία για τα δύο υποσύνολα (αναδρομικά) Πολυπλοκότητα: Ο(ΝLog2N) (ό,τι καλύτερο εφικτό)

63 Αλγόριθμοι Ταξινόμησης Γρήγορη Ταξινόμηση (quick sort) Αλγόριθμος... Πώς επιλέγεται ο άξονας σε κάθε σύνολο ; Τυχαία (ή µε κάποιο άλλο κανόνα, ανάλογα µε το σύνολο) Στην τυχαία επιλογή παίρνουμε το 1ο στοιχείο του κάθε συνόλου Πώς υλοποιείται ο διαχωρισμός κάθε συνόλου σε δύο υποσύνολα (βάσει του άξονα) ; Διαπέραση του συνόλου από τα δύο άκρα προς το κέντρο με τη βοήθεια δύο δεικτών Ο αριστερός (δεξιός) δείκτης σταµατά όταν συναντήσει στοιχείο μεγαλύτερο (μικρότερο) από τον άξονα Όταν σταματήσουν και οι δύο δείκτες τους εναλλάσουμε Η διαπέραση συνεχίζει µε επανάληψη των 2 προηγούμενων βημάτων μέχρι τη διασταύρωση των δεικτών

64 Αλγόριθμοι Ταξινόμησης Γρήγορη Ταξινόμηση (quick sort) Παράδειγμα... Βήμα Α1 Α2 Α3 Α4 Α5 Α6 Α7 Α αριστερό υποσύνολο δεξιό υποσύνολο

65 Αλγόριθμοι Αναζήτησης Σειριακή Αναζήτηση... Το πρόβλημα... Σε ένα σύνολο Ν στοιχείων σε τυχαία διάταξη αναζητάµε την παρουσία του στοιχείου C Επίλυση... Εξετάζουμε διαδοχικά τα στοιχεία του πίνακα μέχρι την εύρεση του ζητούμενου (στοιχείο C) π.χ., C = Πολυπλοκότητα: Ο(Ν) [καλύτερη Ο(1), μέση Ο(Ν/2)]

66 Αλγόριθμοι Αναζήτησης Δυαδική Αναζήτηση (binary search) Αν τα στοιχεία είναι ταξινομημένα Μπορεί να εφαρμοστεί μια πιο έξυπνη λύση... Ανάλογο της αναζήτησης ενός τηλεφώνου στον κατάλογο του ΟΤΕ Τακτική του «διαίρει και βασίλευε» Ο αλγόριθμος... (για αύξουσα διάταξη) Ανάκτηση του μεσαίου στοιχείου (Μ) του συνόλου Αν αυτό που αναζητάµε (C) ισούται µε το Μ... Η λύση Αν αυτό που αναζητάµε (C) είναι μικρότερο (C<M) αγνοούμε το υποσύνολο δεξιά του Μ και επαναλαμβάνουμε τη διαδικασία στο αριστερό υποσύνολο Αν αυτό που αναζητάµε (C) είναι μεγαλύτερο (C >M) αγνοούμε το υποσύνολο αριστερά του Μ και επαναλαμβάνουμε τη διαδικασία στο δεξιό υποσύνολο

67 Αλγόριθμοι Αναζήτησης Δυαδική Αναζήτηση (binary search) Παράδειγμα... C=9, N= Βήμα 1ο Βήμα 2ο Βήμα 3ο Πολυπλοκότητα: O(log 2 N) (ότι καλύτερο εφικτό)

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

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

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

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

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

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

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

Αλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2016-17 Αλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα) http://mixstef.github.io/courses/csintro/ Μ.Στεφανιδάκης Αφηρημένες

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

Ενδεικτικές Ερωτήσεις Θεωρίας

Ενδεικτικές Ερωτήσεις Θεωρίας Ενδεικτικές Ερωτήσεις Θεωρίας Κεφάλαιο 2 1. Τι καλούμε αλγόριθμο; 2. Ποια κριτήρια πρέπει οπωσδήποτε να ικανοποιεί ένας αλγόριθμος; 3. Πώς ονομάζεται μια διαδικασία που δεν περατώνεται μετά από συγκεκριμένο

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

ΑΕΠΠ Ερωτήσεις θεωρίας

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

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

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

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

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

Περιεχόμενα. Περιεχόμενα

Περιεχόμενα. Περιεχόμενα Περιεχόμενα xv Περιεχόμενα 1 Αρχές της Java... 1 1.1 Προκαταρκτικά: Κλάσεις, Τύποι και Αντικείμενα... 2 1.1.1 Βασικοί Τύποι... 5 1.1.2 Αντικείμενα... 7 1.1.3 Τύποι Enum... 14 1.2 Μέθοδοι... 15 1.3 Εκφράσεις...

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

Δομές Ακολουθίας- Επιλογής - Επανάληψης. Δομημένος Προγραμματισμός

Δομές Ακολουθίας- Επιλογής - Επανάληψης. Δομημένος Προγραμματισμός Δομές Ακολουθίας- Επιλογής - Επανάληψης Δομημένος Προγραμματισμός 1 Βασικές Έννοιες αλγορίθμων Σταθερές Μεταβλητές Εκφράσεις Πράξεις Εντολές 2 Βασικές Έννοιες Αλγορίθμων Σταθερά: Μια ποσότητα που έχει

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

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

2.2.5 ΑΝΑΠΑΡΑΣΤΑΣΗ ΑΛΓΟΡΙΘΜΟΥ 2.2.5 ΑΝΑΠΑΡΑΣΤΑΣΗ ΑΛΓΟΡΙΘΜΟΥ ΑΝΑΠΑΡΑΣΤΑΣΗ ΑΛΓΟΡΙΘΜΟΥ Προκειμένου να επιτευχθεί η «ακριβής περιγραφή» ενός αλγορίθμου, χρησιμοποιείται κάποια γλώσσα που μπορεί να περιγράφει σειρές ενεργειών με τρόπο αυστηρό,

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

Δοµές Δεδοµένων. 11η Διάλεξη Ταξινόµηση Quicksort και Ιδιότητες Δέντρων. Ε. Μαρκάκης

Δοµές Δεδοµένων. 11η Διάλεξη Ταξινόµηση Quicksort και Ιδιότητες Δέντρων. Ε. Μαρκάκης Δοµές Δεδοµένων 11η Διάλεξη Ταξινόµηση Quicksort και Ιδιότητες Δέντρων Ε. Μαρκάκης Περίληψη Quicksort Χαρακτηριστικά επιδόσεων Μη αναδροµική υλοποίηση Δέντρα Μαθηµατικές ιδιότητες Δοµές Δεδοµένων 11-2

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

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

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

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

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

Δομές Δεδομένων και Αλγόριθμοι Δομές Δεδομένων και Αλγόριθμοι Χρήστος Γκόγκος ΤΕΙ Ηπείρου Χειμερινό Εξάμηνο 2014-2015 Παρουσίαση 1 Εισαγωγή 1 / 14 Δομές Δεδομένων και Αλγόριθμοι Δομή Δεδομένων Δομή δεδομένων είναι ένα σύνολο αποθηκευμένων

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

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

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

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

Κεφάλαιο 2 ο Βασικές Έννοιες Αλγορίθμων (σελ )

Κεφάλαιο 2 ο Βασικές Έννοιες Αλγορίθμων (σελ ) Κεφάλαιο 2 ο Βασικές Έννοιες Αλγορίθμων (σελ. 25 48) Τι είναι αλγόριθμος; Γ ΛΥΚΕΙΟΥ Αλγόριθμος είναι μία πεπερασμένη σειρά ενεργειών, αυστηρά καθορισμένων και εκτελέσιμων σε πεπερασμένο χρονικό διάστημα,

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

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

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

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

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

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

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

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

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

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

3 ΑΝΑ ΡΟΜΗ ΑΝΑΖΗΤΗΣΗ - ΤΑΞΙΝΟΜΗΣΗ. n! = 1*2*3*..(n-1)*n. n! = 1 αν n = 0, = n*(n-1)! αν n > ΑΝΑ ΡΟΜΗ Εισαγωγή

3 ΑΝΑ ΡΟΜΗ ΑΝΑΖΗΤΗΣΗ - ΤΑΞΙΝΟΜΗΣΗ. n! = 1*2*3*..(n-1)*n. n! = 1 αν n = 0, = n*(n-1)! αν n > ΑΝΑ ΡΟΜΗ Εισαγωγή 3 ΑΝΑ ΡΟΜΗ ΑΝΑΖΗΤΗΣΗ - ΤΑΞΙΝΟΜΗΣΗ 3.1 ΑΝΑ ΡΟΜΗ 3.1.1 Εισαγωγή ΕΦΑΡΜΟΣΜΕΝΗ ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ Αναδροµή είναι η µέθοδος κατά την οποία, σε µία γλώσσα προγραµµατισµού, µία διαδικασία ή συνάρτηση έχει την δυνατότητα

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

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

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

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

Επιλέξτε Σωστό ή Λάθος για καθένα από τα παρακάτω:

Επιλέξτε Σωστό ή Λάθος για καθένα από τα παρακάτω: Επιλέξτε Σωστό ή Λάθος για καθένα από τα παρακάτω: 1ο ΓΕΛ Καστοριάς Βασικές Έννοιες Αλγορίθμων Δομή Ακολουθίας (κεφ. 2 και 7 σχολικού βιβλίου) 1. Οι μεταβλητές αντιστοιχίζονται από τον μεταγλωττιστή κάθε

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

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

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

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

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

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

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. 1 ο ΚΕΦΑΛΑΙΟ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ 1 ο ΚΕΦΑΛΑΙΟ 1) Τι είναι πρόβλημα (σελ. 3) 2) Τι είναι δεδομένο, πληροφορία, επεξεργασία δεδομένων (σελ. 8) 3) Τι είναι δομή ενός προβλήματος (σελ. 8)

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

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

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

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

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

Οντοκεντρικός Προγραμματισμός Οντοκεντρικός Προγραμματισμός Ενότητα 8: C++ ΒΙΒΛΙΟΗΚΗ STL, ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Δομές Δεδομένων ΔΙΔΑΣΚΟΝΤΕΣ: Ιωάννης Χατζηλυγερούδης, Χρήστος Μακρής Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ & Πληροφορικής Δομές

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

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

Αλγόριθμοι Ταξινόμησης Μέρος 2 Αλγόριθμοι Ταξινόμησης Μέρος 2 Μανόλης Κουμπαράκης 1 Προχωρημένοι Αλγόριθμοι Ταξινόμησης Στη συνέχεια θα παρουσιάσουμε τρείς προχωρημένους αλγόριθμους ταξινόμησης: treesort, quicksort και mergesort. 2

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

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

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

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

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

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

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

Ταξινόμηση με συγχώνευση Merge Sort

Ταξινόμηση με συγχώνευση 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 Διαίρει και Βασίλευε Η μέθοδος του «Διαίρει και Βασίλευε» είναι μια γενική αρχή σχεδιασμού αλγορίθμων

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

Στόχοι και αντικείμενο ενότητας. Προτάσεις επανάληψης. Έλεγχος ροής προγράμματος. #5.. Εντολές Επανάληψης

Στόχοι και αντικείμενο ενότητας. Προτάσεις επανάληψης. Έλεγχος ροής προγράμματος. #5.. Εντολές Επανάληψης Στόχοι και αντικείμενο ενότητας Έλεγχος ροής προγράμματος (βλ. ενότητα #4) Δομή επανάληψης #5.. Εντολές Επανάληψης Προτάσεις επανάληψης Εντολές while, do while Εντολή for Περί βρόχων (loops) Τελεστές,

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

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

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

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

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

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

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

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο Κάθε δομή μπορεί να χρησιμοποιηθεί σε οποιοδήποτε πρόβλημα ή εφαρμογή

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

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

Κάθε στοιχείο που γίνεται αντιληπτό με μία από τις πέντε αισθήσεις μας

Κάθε στοιχείο που γίνεται αντιληπτό με μία από τις πέντε αισθήσεις μας Κάθε στοιχείο που γίνεται αντιληπτό με μία από τις πέντε αισθήσεις μας είναι ένα δεδομένο. Τα δεδομένα μπορούν να αναπαραστήσουν αφαιρετικά την πραγματικότητα δηλαδή να μας δείχνουν μία απλοποιημένη όψη

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

Initialize each person to be free. while (some man is free and hasn't proposed to every woman) { Choose such a man m w = 1 st woman on m's list to

Initialize each person to be free. while (some man is free and hasn't proposed to every woman) { Choose such a man m w = 1 st woman on m's list to Κεφάλαιο 2 Δοµές Δεδοµένων Ι Χρησιµοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne. 1 Δοµές Δεδοµένων Ι Στην ενότητα αυτή θα γνωρίσουµε ορισµένες Δοµές Δεδοµένων και θα τις χρησιµοποιήσουµε

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

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

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

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

Πληροφορική 2. Δομές δεδομένων και αρχείων

Πληροφορική 2. Δομές δεδομένων και αρχείων Πληροφορική 2 Δομές δεδομένων και αρχείων 1 2 Δομή Δεδομένων (data structure) Δομή δεδομένων είναι μια συλλογή δεδομένων που έχουν μεταξύ τους μια συγκεκριμένη σχέση Παραδείγματα δομών δεδομένων Πίνακες

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

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

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

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

Αφηρημένες Δομές Δεδομένων. Στοίβα (Stack) Υλοποίηση στοίβας

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

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

Θεωρητικές Ασκήσεις. ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. 1 ο Μέρος

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

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ 1 ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΚΕΦΑΛΑΙΟ 3ο: ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ ΜΕΡΟΣ 2 ο : ΣΤΟΙΒΑ & ΟΥΡΑ ΙΣΤΟΣΕΛΙΔΑ ΜΑΘΗΜΑΤΟΣ: http://eclass.sch.gr/courses/el594100/ ΣΤΟΙΒΑ 2 Μια στοίβα

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

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

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

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

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

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

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

! Δεν μπορούν να λυθούν όλα τα προβλήματα κάνοντας χρήση του παρ/λου προγ/σμου ΑΡΧΗ ΝΑΙ Διάβα σε a Εκτύπ ωσε a > a 0 ΟΧΙ ΤΕΛΟΣ Σύμβολα διαγράμματος ροής 1 Ακέραιος τύπος 14 0-67 2 Πραγματικός τύπος

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

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

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

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

ΚΕΦΑΛΑΙΟ 2: Τύποι δεδομένων και εμφάνιση στοιχείων...33

ΚΕΦΑΛΑΙΟ 2: Τύποι δεδομένων και εμφάνιση στοιχείων...33 ΠΕΡΙΕΧΟΜΕΝΑ Πρόλογος του συγγραφέα... 13 Πρόλογος του καθηγητή Τιμολέοντα Σελλή... 15 ΚΕΦΑΛΑΙΟ 1: Εργαλεία γλωσσών προγραμματισμού...17 1.1 Γλώσσες προγραμματισμού τρίτης γεννεάς... 18 τι είναι η γλώσσα

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

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

Διαδικασιακός Προγραμματισμός Τμήμα ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Διαδικασιακός Προγραμματισμός Διάλεξη 12 η Αναζήτηση/Ταξινόμηση Πίνακα Οι διαλέξεις βασίζονται στο βιβλίο των Τσελίκη και Τσελίκα C: Από τη Θεωρία στην

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

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

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

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

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

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

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

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

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

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

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΛΓΟΡΙΘΜΟΙ. Πίνακες και βασικές επεξεργασίες αυτών

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΛΓΟΡΙΘΜΟΙ. Πίνακες και βασικές επεξεργασίες αυτών ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΛΓΟΡΙΘΜΟΙ Πίνακες και βασικές επεξεργασίες αυτών Σκοπιές από τις οποίες μελετά η πληροφορική τα δεδομένα Γλωσσών προγραμματισμού Υλικού Δομών δεδομένων Ανάλυσης δεδομένων 22/11/08 Παρουσιάσεις

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

Διάλεξη 2η: Αλγόριθμοι και Προγράμματα

Διάλεξη 2η: Αλγόριθμοι και Προγράμματα Διάλεξη 2η: Αλγόριθμοι και Προγράμματα Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Εισαγωγή στην Επιστήμη Υπολογιστών Βασίζεται σε διαφάνειες του Κ Παναγιωτάκη Πρατικάκης (CSD) Αλγόριθμοι και Προγράμματα

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

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

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

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

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

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

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

Εντολές Επανάληψης. int sum = 0, i=1; sum += i++ ; sum += i++ ; Η πράξη αυτή θα πρέπει να επαναληφθεί Ν φορές!

Εντολές Επανάληψης. int sum = 0, i=1; sum += i++ ; sum += i++ ; Η πράξη αυτή θα πρέπει να επαναληφθεί Ν φορές! Εντολές Επανάληψης Πολλές φορές χρειάζεται να επαναλάβουμε τις ίδιες εντολές Πχ. Έστω ότι θέλουμε να υπολογίσουμε το άθροισμα όρων μιας ακολουθίας διαδοχικών ακεραίων. Δηλαδή αν ο χρήστης δώσει τον αριθμό

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

Ενότητα 3: ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ

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

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

10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος.

10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος. 1. Δώστε τον ορισμό του προβλήματος. 2. Σι εννοούμε με τον όρο επίλυση ενός προβλήματος; 3. Σο πρόβλημα του 2000. 4. Σι εννοούμε με τον όρο κατανόηση προβλήματος; 5. Σι ονομάζουμε χώρο προβλήματος; 6.

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

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

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

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

ΒΙΒΛΙΑ ΒΙΒΛΙΑ

ΒΙΒΛΙΑ ΒΙΒΛΙΑ ΠΑΡΑΡΤΗΜΑ 05 ΠΛΗΡΟΦΟΡΙΚΗ Σύγκριση της Διδακτέας-εξεταστέας ύλης του πανελλαδικώς εξεταζόμενου μαθήματος «ΠΛΗΡΟΦΟΡΙΚΗ» (πρώην Περιβάλλον), της Γ τάξης ημερήσιου Γενικού Λυκείου, μεταξύ του σχολικού έτους

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

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

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

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

ΔΙΑΓΩΝΙΣΜΑ ΣΤΗΝ Α.Ε.Π.Π. Γ ΤΕΧΝΟΛΟΓΙΚΗΣ. Όνομα:.. Βαθμός: /100

ΔΙΑΓΩΝΙΣΜΑ ΣΤΗΝ Α.Ε.Π.Π. Γ ΤΕΧΝΟΛΟΓΙΚΗΣ. Όνομα:.. Βαθμός: /100 ΔΙΑΓΩΝΙΣΜΑ ΣΤΗΝ Α.Ε.Π.Π. Γ ΤΕΧΝΟΛΟΓΙΚΗΣ Όνομα:.. Βαθμός: /100 Θέμα Α 1. Να χαρακτηρίσετε τις προτάσεις με Σ, αν είναι σωστές και Λ, αν είναι λάθος. a. Οι πίνακες δεν μπορούν να έχουν περισσότερες από δύο

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

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

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

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

Εργαστηριακή Άσκηση 1

Εργαστηριακή Άσκηση 1 Εργαστηριακή Άσκηση 1 Επανάληψη προγραμματισμού Βασικοί Αλγόριθμοι Είσοδος τιμών από το πληκτρολόγιο Σε όλα τα προγράμματα που θα γράψουμε στην συνέχεια του εξαμήνου θα χρειαστεί να εισάγουμε τιμές σε

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

Οι δυναμικές δομές δεδομένων στην ΑΕΠΠ

Οι δυναμικές δομές δεδομένων στην ΑΕΠΠ Καθηγητής Πληροφορικής Απαγορεύεται η αναπαραγωγή των σημειώσεων χωρίς αναφορά στην πηγή Οι σημειώσεις, αν και βασίζονται στο διδακτικό πακέτο, αποτελούν προσωπική θεώρηση της σχετικής ύλης και όχι επίσημο

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

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

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

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

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

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

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

Α2. Δίνεται το επόμενο τμήμα προγράμματος σε ΓΛΩΣΣΑ:

Α2. Δίνεται το επόμενο τμήμα προγράμματος σε ΓΛΩΣΣΑ: ΜΑΘΗΜΑ / ΤΑΞΗ : ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: ΕΠΙΜΕΛΕΙΑ ΔΙΑΓΩΝΙΣΜΑΤΟΣ: Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον ΘΕΜΑ Α Α1. Να γράψετε τον αριθμό για καθεμία από τις παρακάτω προτάσεις 1-5 και, δίπλα τη λέξη

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

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον. Κεφάλαια 2,7,8

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον. Κεφάλαια 2,7,8 Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον Επιμέλεια : Δρεμούσης Παντελής Κεφάλαια 2,7,8 1. Τι είναι αλγόριθμος; Μια πεπερασμένη σειρά ενεργειών, αυστηρά καθορισμένων και εκτελέσιμων σε πεπερασμένο

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

Προγραμματισμός Η/Υ. Ενότητα 5: Εντολές Επανάληψης

Προγραμματισμός Η/Υ. Ενότητα 5: Εντολές Επανάληψης Προγραμματισμός Η/Υ Ενότητα 5: Νίκος Καρακαπιλίδης, Καθηγητής Δημήτρης Σαραβάνος, Καθηγητής Πολυτεχνική Σχολή Τμήμα Μηχανολόγων & Αεροναυπηγών Μηχανικών Σκοποί ενότητας Έλεγχος της ροής του προγράμματος

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

Οι εντολές ελέγχου της ροής ενός προγράμματος.

Οι εντολές ελέγχου της ροής ενός προγράμματος. Κεφάλαιο ΙΙI: Οι εντολές ελέγχου της ροής ενός προγράμματος 31 Εντολές ελέγχου της ροής Στο παρόν κεφάλαιο ασχολούμαστε με την σύνταξη των εντολών της C οι οποίες εισάγουν λογική και ελέγχουν την ροή εκτέλεσης

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

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

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

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

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

ΠΛΗ111. Ανοιξη Μάθηµα 9 ο. Ταξινόµηση. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης ΠΛΗ111 οµηµένος Προγραµµατισµός Ανοιξη 2005 Μάθηµα 9 ο Ταξινόµηση Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης Ταξινόµηση Εισαγωγή Selection sort Insertion sort Bubble sort

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

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

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

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

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

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

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

Διάλεξη 5η: Εντολές Επανάληψης

Διάλεξη 5η: Εντολές Επανάληψης Διάλεξη 5η: Εντολές Επανάληψης Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Εισαγωγή στην Επιστήμη Υπολογιστών Βασίζεται σε διαφάνειες του Κ Παναγιωτάκη Πρατικάκης (CSD) Εντολές Επανάληψης CS100, 2015-2016

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

Εισαγωγή στον Προγραμματισμό (με. τη C)

Εισαγωγή στον Προγραμματισμό (με. τη C) Υποχρεωτικό Μάθημα 3 ου Εξαμήνου Χειμερινό Εξάμηνο Ακ. Έτους 20 Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Εισαγωγή στον Προγραμματισμό (με τη C) Διδάσκουσα: Φατούρου Παναγιώτα faturu [at] csd.uoc.gr

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

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

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

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

Αρχές Προγραμματισμού Η/Υ Μέθοδοι παρουσίασης του αλγόριθμου και Βασικές έννοιες

Αρχές Προγραμματισμού Η/Υ Μέθοδοι παρουσίασης του αλγόριθμου και Βασικές έννοιες Αρχές Προγραμματισμού Η/Υ Μέθοδοι παρουσίασης του αλγόριθμου και Βασικές έννοιες Βελώνης Γεώργιος Καθηγητής Πληροφορικής ΠΕ20 Περιεχόμενα Μέθοδοι Παρουσίασης του αλγόριθμου Εισαγωγή Φραστική μέθοδος Ψευδοκώδικας

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

Προγραμματισμός Η/Υ. Αλγόριθμοι. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

Προγραμματισμός Η/Υ. Αλγόριθμοι. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος Προγραμματισμός Η/Υ Αλγόριθμοι ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος Ανάπτυξη Λογισμικού Η διαδικασία ανάπτυξης λογισμικού μπορεί να παρομοιαστεί

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

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

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 2. Πίνακες 45 23 28 95 71 19 30 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 21/10/2016

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

Τύποι Δεδομένων και Απλές Δομές Δεδομένων. Παύλος Εφραιμίδης V1.0 ( )

Τύποι Δεδομένων και Απλές Δομές Δεδομένων. Παύλος Εφραιμίδης V1.0 ( ) Τύποι Δεδομένων και Απλές Δομές Δεδομένων Παύλος Εφραιμίδης V1.0 (2014-01-13) Απλές Δομές Δεδομένων Στην ενότητα αυτή θα γνωρίσουμε ορισμένες απλές Δομές Δεδομένων και θα τις χρησιμοποιήσουμε για την αποδοτική

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

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

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

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

Περιεχόμενα. Πρόλογος... 17

Περιεχόμενα. Πρόλογος... 17 Περιεχόμενα Πρόλογος... 17 Κεφάλαιο 1: Εισαγωγή... 19 Πώς να διαβάσετε αυτό το βιβλίο... 20 Η γλώσσα C Ιστορική αναδρομή... 22 Τα χαρακτηριστικά της C... 23 C Μια δομημένη γλώσσα... 23 C Μια γλώσσα για

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

Στόχοι και αντικείμενο ενότητας. Πέρασμα Πίνακα σε Συνάρτηση (συν.) Πέρασμα Πίνακα σε Συνάρτηση. #8.. Ειδικά Θέματα Αλγορίθμων

Στόχοι και αντικείμενο ενότητας. Πέρασμα Πίνακα σε Συνάρτηση (συν.) Πέρασμα Πίνακα σε Συνάρτηση. #8.. Ειδικά Θέματα Αλγορίθμων Στόχοι και αντικείμενο ενότητας Πέρασμα Πίνακα σε Συνάρτηση #8.. Ειδικά Θέματα Αλγορίθμων Προβλήματα Αναζήτησης Γραμμική Αναζήτηση (Linear Search) Ενημέρωση Μέτρηση Δυαδική Αναζήτηση (Binary Search) Προβλήματα

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

Πίνακες. Ι.Ε.Κ ΓΛΥΦΑΔΑΣ Τεχνικός Τεχνολογίας Internet Αλγοριθμική Ι (Ε) Σχολ. Ετος A Εξάμηνο

Πίνακες. Ι.Ε.Κ ΓΛΥΦΑΔΑΣ Τεχνικός Τεχνολογίας Internet Αλγοριθμική Ι (Ε) Σχολ. Ετος A Εξάμηνο Πίνακες Ι.Ε.Κ ΓΛΥΦΑΔΑΣ Τεχνικός Τεχνολογίας Internet Αλγοριθμική Ι (Ε) Σχολ. Ετος 2012-13 A Εξάμηνο Πίνακες Η ποιο γνωστή και διαδεδομένη στατική δομή είναι ο πίνακας. Οι πίνακες αποτελούνται από στοιχεία

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

Βασικές Έννοιες Δοµών Δεδοµένων

Βασικές Έννοιες Δοµών Δεδοµένων Δοµές Δεδοµένων Δοµές Δεδοµένων Στην ενότητα αυτή θα γνωρίσουµε ορισµένες Δοµές Δεδοµένων και θα τις χρησιµοποιήσουµε για την αποδοτική επίλυση του προβλήµατος του ευσταθούς ταιριάσµατος Βασικές Έννοιες

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

Υπολογισμός - Εντολές Επανάληψης

Υπολογισμός - Εντολές Επανάληψης Προγραμματισμός Η/Υ Ι Υπολογισμός - Εντολές Επανάληψης ΕΛΕΥΘΕΡΙΟΣ ΚΟΣΜΑΣ ΕΑΡΙΝΟ ΕΞΑΜΗΝΟ 2018-2019 ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ Τ.Ε. 1 Περίληψη Σήμερα... θα συνεχίσουμε τη συζήτησή μας για τα βασικά στοιχεία

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

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον. Διάρκεια 3 ώρες. Όνομα... Επώνυμο... Βαθμός...

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον. Διάρκεια 3 ώρες. Όνομα... Επώνυμο... Βαθμός... 1 Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον Διάρκεια 3 ώρες Στοιχεία Μαθητή: Όνομα... Επώνυμο... Βαθμός... 2 Θεμα Α (30%) Α1 ΣΩΣΤΟ - ΛΑΘΟΣ 1. Ένα υποπρόγραμμα δεν μπορεί να κληθεί περισσότερες

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

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

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

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

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

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

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

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

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

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

ΘΕΜΑ Α ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ

ΘΕΜΑ Α ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ 1ΗΣ ΣΕΛΙΔΑΣ ΘΕΜΑ Α ΑΝΑΚΕΦΑΛΑΙΩΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ Γ' ΤΑΞΗΣ ΗΜΕΡΗΣΙΟΥ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ ΠΕΜΠΤΗ 26 ΑΠΡΙΛΙΟΥ 2012 ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΕΧΝΟΛΟΓΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ (ΚΥΚΛΟΥ

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

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

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 2. Πίνακες 45 23 28 95 71 19 30 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 12/10/2017

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

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

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

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

Περιεχόμενα. Πρόλογος... 21

Περιεχόμενα. Πρόλογος... 21 Περιεχόμενα Πρόλογος... 21 Κεφάλαιο 1: Εισαγωγή στον προγραμματισμό... 25 Εισαγωγή...27 Πώς να διαβάσετε αυτό το βιβλίο...27 Η δομή των κεφαλαίων...28 Γιατί να μάθω προγραμματισμό;...31 Γιατί να μάθω C;...31

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

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

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

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

ΕΡΩΤΗΣΕΙΣ ΑΞΙΟΛΟΓΗΣΗΣ

ΕΡΩΤΗΣΕΙΣ ΑΞΙΟΛΟΓΗΣΗΣ Α) Να γράψετε στο τετράδιό σας τον αριθμό κάθε πρότασης και δίπλα το γράμμα "Σ", αν είναι σωστή, ή το γράμμα "Λ", αν είναι λανθασμένη. (Μονάδες 25) 1. Ένα αδόμητο πρόβλημα είναι ταυτόχρονα και ανοικτό

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

Α. unsigned int Β. double. Γ. int. unsigned char x = 1; x = x + x ; x = x * x ; x = x ^ x ; printf("%u\n", x); Β. unsigned char

Α. unsigned int Β. double. Γ. int. unsigned char x = 1; x = x + x ; x = x * x ; x = x ^ x ; printf(%u\n, x); Β. unsigned char ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Εξετάσεις Β Περιόδου 2015 (8/9/2015) ΟΝΟΜΑΤΕΠΩΝΥΜΟ:................................................................................ Α.Μ.:...............................................

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

Εισαγωγή στην Πληροφορική Προγραμματισμός-Λειτουργικά

Εισαγωγή στην Πληροφορική Προγραμματισμός-Λειτουργικά Εισαγωγή στην Πληροφορική Προγραμματισμός-Λειτουργικά Ηλ. Γκρίνιας Τ. Ε. Ι. Σερρών Τμήμα Πληροφορικής και Επικοινωνιών Αλγόριθμοι Ορισμός: ο αλγόριθμος είναι μια σειρά από πεπερασμένα βήματα που καθορίζουν

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

Περιεχόμενα. Δομές δεδομένων. Τεχνικές σχεδίασης αλγορίθμων. Εισαγωγή στον προγραμματισμό. Υποπρογράμματα. Επαναληπτικά κριτήρια αξιολόγησης

Περιεχόμενα. Δομές δεδομένων. Τεχνικές σχεδίασης αλγορίθμων. Εισαγωγή στον προγραμματισμό. Υποπρογράμματα. Επαναληπτικά κριτήρια αξιολόγησης Περιεχόμενα Δομές δεδομένων 37. Δομές δεδομένων (θεωρητικά στοιχεία)...11 38. Εισαγωγή στους μονοδιάστατους πίνακες...16 39. Βασικές επεξεργασίες στους μονοδιάστατους πίνακες...25 40. Ασκήσεις στους μονοδιάστατους

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