ΑΛΓΟΡΙΘΜΟΙ & ΟΜΕΣ Ε ΟΜΕΝΩΝ (Σηµειώσεις Θεωρίας)

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

Download "ΑΛΓΟΡΙΘΜΟΙ & ΟΜΕΣ Ε ΟΜΕΝΩΝ (Σηµειώσεις Θεωρίας)"

Transcript

1 TEΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙ ΕΥΤΙΚΟ Ι ΡΥΜΑ ΣΕΡΡΩΝ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΕΠΙΚΟΙΝΩΝΙΩΝ ΑΛΓΟΡΙΘΜΟΙ & ΟΜΕΣ Ε ΟΜΕΝΩΝ (Σηµειώσεις Θεωρίας) Ευάγγελος Γ. Ούτσιος Σέρρες 2004

2 2 ΑΛΓΟΡΙΘΜΟΙ & ΟΜΕΣ Ε ΟΜΕΝΩΝ

3 ΠΕΡΙΕΧΟΜΕΝΑ ΕΙΣΑΓΩΓΗ Ανάλυση Σύνθεση προβλήµατος 5 Κεφάλαιο 1 ΑΛΓΟΡΙΘΜΟΙ 1.1 Βασικές έννοιες αλγορίθµων Περιγραφή και αναπαράσταση αλγορίθµων Στοιχεία ψευδοκώδικα Βασικές αλγοριθµικές δοµές οµή Ακολουθίας οµή Επιλογής οµή Επανάληψης Ανάλυση αλγορίθµων Επίδοση αλγορίθµων Ορθότητα αλγορίθµων Πολυπλοκότητα αλγορίθµων Είδη αλγορίθµων 16 Κεφάλαιο 2 ΠΙΝΑΚΕΣ 2.1 Εισαγωγή Βασικές έννοιες πινάκων Αποθήκευση πινάκων Ειδικές µορφές πινάκων 25 Κεφάλαιο 3 ΑΝΑ ΡΟΜΗ 3.1 Εισαγωγή Υπολογισµός παραγοντικού Υπολογισµός δύναµης 30 Κεφάλαιο 4 ΑΝΑΖΗΤΗΣΗ 4.1 Εισαγωγή Σειριακή Αναζήτηση υαδική Αναζήτηση 33 Κεφάλαιο 5 ΤΑΞΙΝΟΜΗΣΗ 5.1 Εισαγωγή Ταξινόµηση µε απευθείας επιλογή Ταξινόµηση µε απευθείας εισαγωγή Ταξινόµηση φυσαλίδας Γρήγορη ταξινόµηση 40 3

4 Κεφάλαιο 6 ΓΡΑΜΜΙΚΕΣ ΛΙΣΤΕΣ 6.1 Εισαγωγή Σειριακές Λίστες Στοίβα Ουρά Συνδεδεµένες Λίστες Απλή συνδεδεµένη λίστα Στοίβα ως συνδεδεµένη λίστα Ουρά ως συνδεδεµένη λίστα 53 Κεφάλαιο 7 ΕΝ ΡΑ 7.1 Εισαγωγή υαδικά δένδρα B-trees Tries 66 Κεφάλαιο 8 ΓΡΑΦΟΙ 8.1 Εισαγωγή Μέθοδοι Αναπαράστασης γράφων Μέθοδοι ιάσχισης γράφων Αναζήτηση µε προτεραιότητα Βάθους Αναζήτηση µε προτεραιότητα Πλάτους Το πρόβληµα του συντοµότερου µονοπατιού 81 Κεφάλαιο 9 ΠΙΝΑΚΕΣ ΚΑΤΑΚΕΡΜΑΤΙΣΜΟΥ 9.1 Εισαγωγή Συγκρούσεις Ανοιχτή διευθυνσιοδότηση Ξεχωριστή σύνδεση 86 ΠΑΡΑΡΤΗΜΑ Α Πίνακας χαρακτηριστικών οµών εδοµένων 88 ΒΙΒΛΙΟΓΡΑΦΙΑ 89 4

5 Ε Ι Σ Α Γ Ω Γ Η ΑΛΓΟΡΙΘΜΟΙ & ΟΜΕΣ Ε ΟΜΕΝΩΝ ΑΝΑΛΥΣΗ ΣΥΝΘΕΣΗ ΠΡΟΒΛΗΜΑΤΟΣ Το πρόβληµα αποτελεί έννοια που απαντάται σε όλες τις επιστήµες και τους κλάδους τους, αλλά παράλληλα και στην καθηµερινή µας ζωή. Με τον όρο πρόβληµα εννοείται µια κατάσταση η οποία χρήζει αντιµετώπισης, απαιτεί λύση, η δε λύση της δεν είναι γνωστή, ούτε προφανής. Τόσο η αντιµετώπιση, όσο και η διατύπωση ενός προβλήµατος, αποτελούν διαδικασίες που απαιτούν ιδιαίτερες αναλυτικές και συνθετικές ικανότητες, ορθολογική σκέψη, αλλά και σωστό και εµπεριστατωµένο χειρισµό της φυσικής γλώσσας. Η οποιαδήποτε προσπάθεια αντιµετώπισης ενός προβλήµατος είναι καταδικασµένη σε αποτυχία αν προηγουµένως δεν έχει γίνει απόλυτα κατανοητό το πρόβληµα που τίθεται. Η κατανόηση ενός προβλήµατος αποτελεί συνάρτηση δύο παραγόντων, της σωστής διατύπωσης εκ µέρους του δηµιουργού του και της αντίστοιχα σωστής ερµηνείας από τη µεριά εκείνου που καλείται να το αντιµετωπίσει. Η κατανόηση του προβλήµατος είναι βασική προϋπόθεση για να γίνει στη συνέχεια δυνατή η σωστή αποτύπωση της δοµής του. Η καταγραφή της δοµής ενός προβλήµατος σηµαίνει αυτόµατα ότι έχει αρχίσει η διαδικασία ανάλυσης του προβλήµατος σε άλλα απλούστερα. Με τη σειρά τους τα νέα προβλήµατα µπορούν να αναλυθούν σε άλλα, ακόµη πιο απλά. Η διαδικασία αυτή της ανάλυσης µπορεί να συνεχιστεί µέχρις ότου τα επιµέρους προβλήµατα που προέκυψαν θεωρηθούν αρκετά απλά και η αντιµετώπισή τους χαρακτηριστεί ως δυνατή. Με το όρο δοµή ενός προβλήµατος αναφερόµαστε στα συστατικά του µέρη, στα επιµέρους τµήµατα που το αποτελούν καθώς επίσης και στον τρόπο που αυτά τα µέρη συνδέονται µεταξύ τους. Η δυσκολία αντιµετώπισης των προβληµάτων ελαττώνεται όσο περισσότερο προχωράει η ανάλυσή τους σε απλούστερα προβλήµατα. Ο κατακερµατισµός ενός προβλήµατος σε άλλα απλούστερα είναι µια από τις διαδικασίες που ενεργοποιούν και αµβλύνουν τόσο τη σκέψη, αλλά κυρίως την αναλυτική ικανότητα του ατόµου. Η σωστή επίλυση ενός προβλήµατος προϋποθέτει τον επακριβή προσδιορισµό των δεδοµένων που παρέχει το πρόβληµα. Απαιτεί επίσης την λεπτοµερειακή καταγραφή των ζητούµενων που αναµένονται σαν αποτελέσµατα της επίλυσης του προβλήµατος. 5

6 Θα πρέπει να δοθεί µεγάλη προσοχή στην ανίχνευση των δεδοµένων ενός προβλήµατος. Επισηµαίνεται πως δεν είναι πάντοτε εύκολο να διακρίνει κάποιος τα δεδοµένα. Υπάρχουν πολλές περιπτώσεις προβληµάτων που τα δεδοµένα θα πρέπει να ανακαλυφθούν µέσα στα λεγόµενα του προβλήµατος. Η διαδικασία αυτή απαιτεί προσοχή, συγκέντρωση και σκέψη. Μεθοδολογία προσδιορισµού των δεδοµένων ενός προβλήµατος δεν υπάρχει, ούτε και µεθοδολογία εντοπισµού και αποσαφήνισης των ζητούµενων ενός προβλήµατος. Το ίδιο προσεκτικά θα πρέπει να αποσαφηνιστούν και τα ζητούµενα ενός προβλήµατος. εν είναι πάντοτε ιδιαίτερα κατανοητό τι ακριβώς ζητάει ένα πρόβληµα. Σε µια τέτοια περίπτωση θα πρέπει να θέτονται µια σειρά από ερωτήσεις µε στόχο την διευκρίνιση πιθανών αποριών σχετικά µε τα ζητούµενα, τον τρόπο παρουσίασής τους, το εύρος τους κλπ. Οι ερωτήσεις αυτές µπορούν να απευθύνονται είτε στο δηµιουργό του προβλήµατος, είτε στον ίδιο µας τον εαυτό αν εµείς καλούµαστε να αντιµετωπίσουµε το πρόβληµα. Συµπερασµατικά από όλα τα παραπάνω διαφαίνεται πως τα στάδια αντιµετώπισης ενός προβλήµατος είναι τρία: Κατανόηση, όπου απαιτείται η σωστή και πλήρης αποσαφήνιση των δεδοµένων και των ζητούµενων του προβλήµατος Ανάλυση, όπου το αρχικό πρόβληµα διασπάται σε άλλα επιµέρους απλούστερα προβλήµατα Επίλυση, όπου υλοποιείται η λύση του προβλήµατος, µέσω της λύσης των επιµέρους προβληµάτων. Κατανόηση Ανάλυση Επίλυση 6

7 Κεφάλαιο 1 ΑΛΓΟΡΙΘΜΟΙ 1.1 Βασικές έννοιες αλγορίθµων Περιγραφή και αναπαράσταση αλγορίθµων Στοιχεία ψευδοκώδικα 1.2 Βασικές αλγοριθµικές δοµές οµή Ακολουθίας οµή Επιλογής οµή Επανάληψης 1.3 Ανάλυση αλγορίθµων Επίδοση αλγορίθµων Ορθότητα αλγορίθµων Πολυπλοκότητα αλγορίθµων Είδη αλγορίθµων 7

8 1.1 ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ Αλγόριθµος είναι µια πεπερασµένη σειρά ενεργειών, αυστηρά καθορισµένων και εκτελέσιµων σε πεπερασµένο χρόνο, που στοχεύουν στην επίλυση ενός προβλήµατος. Κάθε αλγόριθµος απαραίτητα ικανοποιεί τα επόµενα κριτήρια: Είσοδος (input). Kαµία, µία ή περισσότερες τιµές δεδοµένων πρέπει να δίνονται ως είσοδοι στον αλγόριθµο. Η περίπτωση που δεν δίνονται τιµές δεδοµένων εµφανίζεται, όταν ο αλγόριθµος δηµιουργεί και επεξεργάζεται κάποιες πρωτογενείς τιµές µε τη βοήθεια συναρτήσεων παραγωγής τυχαίων αριθµών ή µε τη βοήθεια άλλων απλών εντολών. Έξοδος (output). Ο αλγόριθµος πρέπει να δηµιουργεί τουλάχιστον µία τιµή δεδοµένων ως αποτέλεσµα προς το χρήστη ή προς έναν άλλο αλγόριθµο. Καθοριστικότητα (definiteness). Κάθε εντολή πρέπει να καθορίζεται χωρίς καµία αµφιβολία για τον τρόπο εκτέλεσής της. Π.χ. η εντολή διαίρεσης πρέπει να θεωρεί και την περίπτωση, όπου ο διαιρέτης λαµβάνει µηδενική τιµή. Περατότητα (finiteness). Ο αλγόριθµος να τελειώνει µετά από πεπερασµένα βήµατα εκτέλεσης των εντολών του. Αποτελεσµατικότητα (effectiveness). Κάθε µεµονωµένη εντολή του αλγορίθµου να είναι απλή. Αυτό σηµαίνει ότι µία εντολή δεν αρκεί να έχει ορισθεί, αλλά πρέπει να είναι και εκτελέσιµη Περιγραφή και αναπαράσταση αλγορίθµων Ελεύθερο κείµενο. Αποτελεί τον πιο ανεπεξέργαστο και αδόµητο τρόπο παρουσίασης αλγορίθµου. Έτσι εγκυµονεί τον κίνδυνο ότι µπορεί εύκολα να οδηγήσει σε µη εκτελέσιµη παρουσίαση παραβιάζοντας το τελευταίο χαρακτηριστικό των αλγορίθµων, δηλ. την αποτελεσµατικότητα. Φυσική γλώσσα κατά βήµατα. Στην περίπτωση αυτή χρειάζεται προσοχή, γιατί µπορεί να παραβιασθεί το τρίτο βασικό χαρακτηριστικό ενός αλγορίθµου, όπως προσδιορίσθηκε προηγουµένως, δηλ. το κριτήριο του καθορισµού. ιάγραµµα ροής. Αποτελείται από ένα σύνολο γεωµετρικών σχηµάτων, όπου το καθένα δηλώνει µία συγκεκριµένη ενέργεια ή λειτουργία. Τα γεωµετρικά σχήµατα ενώνονται µεταξύ τους µε βέλη, που δηλώνουν τη σειρά εκτέλεσης 8

9 των ενεργειών αυτών. Τα κυριότερα χρησιµοποιούµενα γεωµετρικά σχήµατα είναι τα εξής: Αρχή Τέλος Είσοδος Έξοδος ιεργασία Συνθήκη Ψευδοκώδικας. Χρησιµοποιείται µία δοµηµένη µορφή ψευδογλώσσας, που στηρίζεται στις βασικές αλγοριθµικές δοµές και τις αρχές του δοµηµένου προγραµµατισµού και µπορεί εύκολα σχετικά να προγραµµατισθεί σε οποιαδήποτε γλώσσα προγραµµατισµού Στοιχεία ψευδοκώδικα Σταθερές (constants). Με τον όρο αυτό αναφερόµαστε σε προκαθορισµένες τιµές που παραµένουν αµετάβλητες σε όλη τη διάρκεια της εκτέλεσης ενός αλγορίθµου. Μεταβλητές (variables). Μια µεταβλητή είναι ένα γλωσσικό αντικείµενο, που χρησιµοποιείται για να παραστήσει ένα στοιχείο δεδοµένου. Στη µεταβλητή εκχωρείται µια τιµή, η οποία µπορεί να αλλάζει κατά τη διάρκεια εκτέλεσης ενός αλγορίθµου. Ανάλογα µε το είδος της τιµής που µπορούν να λάβουν, οι µεταβλητές διακρίνονται σε 9

10 o Αριθµητικές o αλφαριθµητικές o και λογικές. ΑΛΓΟΡΙΘΜΟΙ & ΟΜΕΣ Ε ΟΜΕΝΩΝ Τελεστές (operators). Πρόκειται για τα γνωστά σύµβολα που χρησιµοποιούνται σε διάφορες πράξεις. Οι τελεστές διακρίνονται σε o Αριθµητικούς: +, -, *, /, % o Συγκριτικούς: >, <, =, >=, <=,!= o Λογικούς: και (&&), ή ( ), όχι (!) Εκφράσεις (expressions). Οι εκφράσεις διαµορφώνονται από τους τελεστέους (operands), που είναι σταθερές και µεταβλητές και από τους τελεστές. Η διεργασία αποτίµησης µιας έκφρασης συνίσταται στην απόδοση τιµών στις µεταβλητές και στην εκτέλεση των πράξεων. Η τελική τιµή µιας έκφρασης εξαρτάται από την ιεραρχία των πράξεων και τη χρήση των παρενθέσεων. Μια έκφραση µπορεί να αποτελείται από µια µόνο µεταβλητή ή σταθερά µέχρι µια πολύπλοκη µαθηµατική παράσταση. 1.2 ΒΑΣΙΚΕΣ ΑΛΓΟΡΙΘΜΙΚΕΣ ΟΜΕΣ οµή Ακολουθίας Η ακολουθιακή δοµή εντολών (σειριακών βηµάτων) χρησιµοποιείται πρακτικά για την αντιµετώπιση απλών προβληµάτων, όπου είναι δεδοµένη η σειρά εκτέλεσης ενός συνόλου ενεργειών. Εντολές της δοµής της ακολουθίας είναι συνήθως οι εντολές εισόδου, εντολές εξόδου και εντολές υπολογισµού και εκχώρησης τιµής. Π.χ. Να διαβασθούν δυο αριθµοί, να υπολογισθεί και να εκτυπωθεί το άθροισµά τους. ΑΛΓΟΡΙΘΜΟΣ Άθροισµα C: ΑΡΧΗ ΙΑΒΑΣΕ a scanf( %d,&a); ΙΑΒΑΣΕ b scanf( %d,&b); c = a + b c = a + b; ΕΜΦΑΝΙΣΕ c printf( %d,c); ΤΕΛΟΣ 10

11 Μετά την ανάγνωση των τιµών των µεταβλητών a και b γίνεται ο υπολογισµός του αθροίσµατος µε την εντολή: c = a + b Η εντολή αυτή αποκαλείται εντολή εκχώρησης τιµής (assignment statement). Η γενική µορφή της είναι: Μεταβλητή = Έκφραση και η λειτουργία της είναι «γίνονται οι πράξεις στην έκφραση και το αποτέλεσµα αποδίδεται, µεταβιβάζεται, εκχωρείται στη µεταβλητή» οµή επιλογής Στην πραγµατικότητα λίγα προβλήµατα µπορούν να επιλυθούν µε τον προηγούµενο τρόπο της σειριακής/ακολουθιακής δοµής ενεργειών. Συνήθως τα προβλήµατα έχουν κάποιες ιδιαιτερότητες και δεν ισχύουν τα ίδια βήµατα για κάθε περίπτωση. Η πλέον συνηθισµένη περίπτωση είναι να λαµβάνονται κάποιες αποφάσεις µε βάση κάποια δεδοµένα κριτήρια που µπορεί να είναι διαφορετικά για κάθε διαφορετικό στιγµιότυπο ενός προβλήµατος. Γενικά η διαδικασία της επιλογής περιλαµβάνει τον έλεγχο κάποιας συνθήκης που µπορεί να έχει δύο τιµές (Αληθής ή Ψευδής) και ακολουθεί η απόφαση εκτέλεσης κάποιας ενέργειας µε βάση την τιµή της λογικής αυτής συνθήκης. Στην παράσταση αλγορίθµων µε ψευδοκώδικα η επιλογή υλοποιείται µε την εντολή ΑΝ ΤΟΤΕ. Η σύνταξη της εντολής είναι: Απλή επιλογή ΑΝ συνθήκη ΤΟΤΕ Εντολές ΤΕΛΟΣ ΑΝ if (expression) Statements; Σύνθετη επιλογή ΑΝ συνθήκη ΤΟΤΕ if (expression) Εντολές 1 Statements 1; ΑΛΛΙΩΣ else Εντολές 2 Statements 2; ΤΕΛΟΣ ΑΝ 11

12 Eµφωλευµένη επιλογή ΑΛΓΟΡΙΘΜΟΙ & ΟΜΕΣ Ε ΟΜΕΝΩΝ ΑΝ συνθήκη 1 ΤΟΤΕ if (expression 1) ΑΝ συνθήκη 2 ΤΟΤΕ if (expression 2) Εντολές 1 Statements 1; ΑΛΛΙΩΣ else Εντολές 2 Statements 2; ΤΕΛΟΣ ΑΝ else ΑΛΛΙΩΣ if (expression 3) ΑΝ συνθήκη 3 ΤΟΤΕ Statements 3; Εντολές 3 else ΑΛΛΙΩΣ Statements 4; Εντολές 4 ΤΕΛΟΣ ΑΝ ΤΕΛΟΣ ΑΝ Σε πολλές περιπτώσεις η συνθήκη εµπεριέχει αποφάσεις που πιθανόν βασίζονται σε περισσότερα από ένα κριτήρια. Ο συνδυασµός των κριτηρίων αυτών καθορίζει και τις λογικές πράξεις που µπορούν να γίνουν µεταξύ διαφορετικών συνθηκών. Πολύ συχνά στην καθηµερινή ζωή κάποιες αποφάσεις βασίζονται σε συνδυασµούς κριτηρίων και λογικών πράξεων. Η λογική πράξη ή είναι αληθής όταν οποιαδήποτε από δύο προτάσεις είναι αληθής. Η λογική πράξη και είναι αληθής όταν και οι δύο προτάσεις είναι αληθείς, ενώ η λογική πράξη όχι είναι αληθής όταν η πρόταση που την ακολουθεί είναι ψευδής. Ο επόµενος πίνακας δίνει τις τιµές των τριών λογικών πράξεων για όλους τους συνδυασµούς τιµών: Πρόταση Α Πρόταση Β Α ή Β Α και Β όχι Α ΑΛΗΘΗΣ ΑΛΗΘΗΣ ΑΛΗΘΗΣ ΑΛΗΘΗΣ ΨΕΥ ΗΣ ΑΛΗΘΗΣ ΨΕΥ ΗΣ ΑΛΗΘΗΣ ΨΕΥ ΗΣ ΨΕΥ ΗΣ ΨΕΥ ΗΣ ΑΛΗΘΗΣ ΑΛΗΘΗΣ ΨΕΥ ΗΣ ΑΛΗΘΗΣ ΨΕΥ ΗΣ ΨΕΥ ΗΣ ΨΕΥ ΗΣ ΨΕΥ ΗΣ ΑΛΗΘΗΣ οµή Επανάληψης Η διαδικασία της επανάληψης είναι ιδιαίτερα συχνή, αφού πλήθος προβληµάτων µπορούν να επιλυθούν µε κατάλληλες επαναληπτικές διαδικασίες. Η λογική των επαναληπτικών διαδικασιών εφαρµόζεται στις περιπτώσεις όπου µια ακολουθία εντολών πρέπει να εφαρµοσθεί σε ένα σύνολο περιπτώσεων, που έχουν κάτι κοινό. Οι επαναληπτικές διαδικασίες µπορεί να έχουν διάφορες µορφές και συνήθως εµπεριέχουν και συνθήκες επιλογών. Γενικά υπάρχουν τρία σχήµατα δοµών επανάληψης, που υποστηρίζονται από τις περισσότερες γλώσσες προγραµµατισµού. 12

13 Επαναληπτικό σχήµα µε έλεγχο επανάληψης στην αρχή ΟΣΟ συνθήκη ΕΠΑΝΕΛΑΒΕ Εντολές ΤΕΛΟΣ ΕΠΑΝΑΛΗΨΗΣ while (expression) Statements; Επαναληπτικό σχήµα µε έλεγχο επανάληψης στο τέλος ΑΡΧΗ ΕΠΑΝΑΛΗΨΗΣ Εντολές ΜΕΧΡΙΣ ΟΤΟΥ συνθήκη do Statements; while (expression); Επαναληπτικό σχήµα ορισµένων φορών επανάληψης ΓΙΑ µεταβλητή ΑΠΟ αρχική τιµή ΜΕΧΡΙ τελική τιµή Εντολές ΤΕΛΟΣ ΕΠΑΝΑΛΗΨΗΣ for (variable = initial value; variable<= final value; step) Statements; Το πρώτο σχήµα επαναληπτικής δοµής (while) είναι το πιο γενικό και µπορεί να εκτελεσθεί από καθόλου µέχρι όσες φορές θέλουµε. Το δεύτερο σχήµα της επαναληπτικής δοµής (do-while) έχει το χαρακτηριστικό να εκτελείται οπωσδήποτε µία φορά, επειδή ο έλεγχος της συνθήκης τερµατισµού γίνεται στο τέλος, γι αυτό και δεν χρησιµοποιείται πολύ. Το τρίτο σχήµα επαναληπτικής δοµής (for) χρησιµοποιείται όταν το πλήθος των επαναλήψεων είναι εκ των προτέρων γνωστό. 13

14 1.3 ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ Η καταγραφή των µεγεθών που επηρεάζουν την επίδοση ενός αλγορίθµου είναι µια σηµαντική ενέργεια για την κατανόηση της αποδοτικότητας ενός αλγορίθµου. Για το λόγο αυτό, είναι απαραίτητο να βρεθεί η βασική λειτουργία και η δοµή του αλγορίθµου όπου κυρίως δαπανώνται οι υπολογιστικοί πόροι Επίδοση αλγορίθµων Η χειρότερη περίπτωση ενός αλγορίθµου αφορά στο µέγιστο κόστος εκτέλεσης του αλγορίθµου. Το κόστος αυτό πολλές φορές κρίνει την επιλογή και τον σχεδιασµό ενός αλγορίθµου. Για να εκφρασθεί αυτή η χειρότερη περίπτωση, χρειάζεται κάποιο µέγεθος σύγκρισης και αναφοράς που να χαρακτηρίζει τον αλγόριθµο. Μια συνηθισµένη πρακτική είναι το πλήθος των βασικών πράξεων που εκτελεί ο αλγόριθµος. Οι βρόγχοι επανάληψης αποτελούν το κρίσιµο σηµείο για τον χαρακτηρισµό της επίδοσης ενός αλγορίθµου. Αν η λύση ενός προβλήµατος επιτυγχάνεται µε τη χρήση δύο ή περισσοτέρων αλγορίθµων, χρειάζεται να γίνει η επιλογή του καταλληλότερου µε βάση την αποδοτικότητά τους. Βέβαια, όταν συγκρίνονται δύο αλγόριθµοι, θα πρέπει να συγκρίνονται µε χρήση των ίδιων δεδοµένων και κάτω από τις ίδιες συνθήκες. Γενικά, ο χρόνος εκτέλεσης κάθε αλγορίθµου εξαρτάται από ένα σύνολο παραγόντων, όπως: Τύπος Η/Υ που θα εκτελέσει το πρόγραµµα του αλγορίθµου Γλώσσα προγραµµατισµού που θα χρησιµοποιηθεί οµή προγράµµατος και δοµές δεδοµένων που χρησιµοποιούνται Είδος συστήµατος, ενός χρήστη ή πολλών χρηστών Ορθότητα αλγορίθµων Η επίλυση ενός προβλήµατος µε τη χρήση κάποιου αλγορίθµου, έχει µεγαλύτερη ισχύ, όταν υπάρχει κάποια τυποποιηµένη ένδειξη ή απόδειξη για την ορθότητα του προτεινόµενου αλγορίθµου. Οι τεχνικές απόδειξης της ορθότητας ενός αλγορίθµου συνδέονται άµεσα µε τον τρόπο της αρχικής σχεδίασης και ανάλυσης του συγκεκριµένου αλγορίθµου. Είναι λάθος να επιχειρείται ο έλεγχος των σφαλµάτων και της ορθότητας ενός αλγορίθµου µετά την σχεδίαση και την τυποποίησή του. Γενικά, δεν µπορεί να υπάρξει απόλυτη ασφάλεια στην εκτίµηση των πιθανών 14

15 σφαλµάτων ενός αλγορίθµου. Η απόδειξη της ορθότητας ενός αλγορίθµου θα πρέπει να περιλαµβάνει τις εξής δύο συνθήκες: Απόδειξη ότι σε κάθε περίπτωση ο τερµατισµός της εκτέλεσης του αλγορίθµου οδηγεί σε αποδεκτά αποτελέσµατα Απόδειξη ότι θα υπάρξει τερµατισµός της εκτέλεσης του αλγορίθµου Πολυπλοκότητα αλγορίθµων Ο απλούστερος τρόπος µέτρησης της επίδοσης ενός αλγορίθµου είναι ο εµπειρικός. ηλαδή, ο αλγόριθµος υλοποιείται και εφαρµόζεται σε ένα σύνολο δεδοµένων, για να υπολογισθεί ο απαιτούµενος χρόνος επεξεργασίας (processing time) και η χωρητικότητα µνήµης (memory space). Ο τρόπος όµως αυτός παρουσιάζει τα εξής µειονεκτήµατα: Είναι δύσκολο να προβλεφθεί η συµπεριφορά του αλγορίθµου για κάποιο άλλο σύνολο δεδοµένων Ο χρόνος επεξεργασίας εξαρτάται από το υλικό, τη γλώσσα προγραµµατισµού και τον µεταφραστή και φυσικά την ικανότητα του προγραµµατιστή Έτσι, µπορεί να βγουν λανθασµένες εκτιµήσεις για την επίδοση του αλγορίθµου. Ένας άλλος τρόπος εκτίµησης της επίδοσης ενός αλγορίθµου είναι ο θεωρητικός. Εισάγεται µία µεταβλητή n, που εκφράζει το µέγεθος του προβλήµατος, έτσι ώστε η µέτρηση της αποδοτικότητας του αλγορίθµου να ισχύει για οποιοδήποτε σύνολο δεδοµένων και ανεξάρτητα από υποκειµενικούς παράγοντες. Η σηµασία της µεταβλητής αυτής εξαρτάται από το πρόβληµα που πρόκειται να επιλυθεί. Στη συνέχεια, ο χρόνος επεξεργασίας και ο απαιτούµενος χώρος µνήµης εκτιµώνται µε τη βοήθεια µιας συνάρτησης f(n), που εκφράζει τη χρονική πολυπλοκότητα (time complexity) και της g(n), που εκφράζει την πολυπλοκότητα χώρου (space complexity). Σε πολλές περιπτώσεις, όµως, δεν ενδιαφέρουν οι επακριβείς τιµές, αλλά µόνο η γενική συµπεριφορά των αλγορίθµων, δηλαδή η τάξη του αλγορίθµου. Για το λόγο αυτό, εισάγεται ο λεγόµενος συµβολισµός Ο (O notation), από την αγγλική λέξη order. Σχεδόν οι περισσότεροι αλγόριθµοι πρακτικού ενδιαφέροντος έχουν χρονική πολυπλοκότητα που ανήκει σε µία από τις επόµενες κατηγορίες: 15

16 Ο(1) Κάθε εντολή του προγράµµατος εκτελείται µία ή µερικές µόνο φορές Ο(log n) Ο αλγόριθµος είναι λογαριθµικής πολυπλοκότητας Ο(n) Γραµµική πολυπλοκότητα. Είναι η καλύτερη επίδοση για έναν αλγόριθµο που πρέπει να εξετάσει ή να δώσει n στοιχεία στην έξοδο. Ο(n.log n) Στην κατηγορία αυτή ανήκει µια πολύ σπουδαία οικογένεια αλγορίθµων ταξινόµησης. Ο(n 2 ) Τετραγωνική πολυπλοκότητα. Πρέπει να χρησιµοποιείται µόνον στα προβλήµατα µικρού µεγέθους. Ο(n 3 ) Κυβική πολυπλοκότητα. Πρέπει να χρησιµοποιείται µόνον στα προβλήµατα µικρού µεγέθους. Ο(2 n ) Εκθετική πολυπλοκότητα. Σπάνια χρησιµοποιείται στην πράξη Είδη αλγορίθµων Το αντικείµενο των αλγορίθµων είναι η βάση όπου στηρίζονται όλοι σχεδόν οι τοµείς της Πληροφορικής. Για το λόγο αυτό, έχουν αναπτυχθεί πολλά είδη και κατηγορίες αλγορίθµων, όπως για παράδειγµα οι αναδροµικοί και οι επαναληπτικοί αλγόριθµοι. Στη συνέχεια θα αναφερθούµε σε µερικές νέες έννοιες σχετικά µε τις κατηγορίες αλγορίθµων. Υπάρχουν, σήµερα, Η/Υ που αποτελούνται από πολλούς επεξεργαστές, πολλές κύριες µνήµες και πολλές δευτερεύουσες µνήµες. Στους Η/Υ αυτούς είναι δυνατόν ένας αλγόριθµος να κατατµηθεί σε µικρότερα κοµµάτια, που εκτελούνται παράλληλα, αφού απαιτούν διαφορετικούς υπολογιστικούς πόρους. Σε αυτά τα υπολογιστικά συστήµατα, ο χρόνος εκτέλεσης ενός αλγορίθµου είναι ασύγκριτα µικρότερος. Η 16

17 ανάπτυξη παράλληλων (parallel) αλγορίθµων είναι µία σηµαντική περιοχή που απασχολεί πλήθος επιστηµόνων. Επειδή η βελτίωση των αλγορίθµων είναι ζωτικής σηµασίας, στην Πληροφορική διερευνούνται οι αλγόριθµοι από την αναλυτική άποψη και ταξινοµούνται ανάλογα µε την επίδοσή τους. Έτσι, συνεχώς νέοι αλγόριθµοι αναπτύσσονται, ενώ άλλοι εγκαταλείπονται ως µη αποτελεσµατικοί. Ένας αλγόριθµος λέγεται βέλτιστος (optimal) αν αποδειχθεί ότι είναι τόσο αποτελεσµατικός, ώστε δεν µπορεί να κατασκευασθεί καλύτερος. Πολυωνυµικοί (polynomial) λέγονται οι αλγόριθµοι µε πολυπλοκότητα που φράσσεται από επάνω µε µία πολυωνυµική έκφραση. Για παράδειγµα, πολυωνυµικοί είναι οι αλγόριθµοι τάξης O(n), O(n 2 ), κλπ. Συνήθως αυτοί δεν απαιτούν µεγάλη υπολογιστική προσπάθεια σε αντίθεση µε τους αλγορίθµους πολυπλοκότητας τάξης Ο(2 n ), O(n.2 n ), κλπ. που ονοµάζονται µη πολυωνυµικοί ή εκθετικοί. Υπάρχουν πολλά προβλήµατα που δεν µπορούν να επιλυθούν µε κάποιο αποτελεσµατικό (δηλαδή πολυωνυµικό) αλγόριθµο, αλλά πρέπει να δοκιµασθούν όλες οι δυνατές περιπτώσεις, για να επιλεγεί η καλύτερη. Τα προβλήµατα αυτά ονοµάζονται δυσχείριστα (intractable). Π.χ. το πρόβληµα της συντοµότερης διαδροµής που πρέπει να ακολουθήσει ένας περιοδεύων πωλητής (traveling salesman), ώστε να περάσει µία µόνο φορά από κάθε πόλη και να επιστρέψει στην αρχική. Η αδυναµία της επιστήµης να προτείνει αποτελεσµατικούς αλγορίθµους για πολλά δυσχείριστα προβλήµατα, έχει αναγκαστικά οδηγήσει στην ανάπτυξη προσεγγιστικών (approximate) αλγορίθµων για την επίλυσή τους, έτσι ώστε να επιτυγχάνεται µία αποδεκτή λύση σε λογικό χρόνο. Ευριστικός (heuristic) είναι ο αλγόριθµος που είτε µπορεί να οδηγήσει σε µία καλή ή ακόµα και βέλτιστη λύση ενός προβλήµατος ή στο άλλο ενδεχόµενο, σε µία λύση που απέχει πολύ από τη βέλτιστη. Οι ευριστικοί αλγόριθµοι δεν είναι τυποποιηµένοι και στηρίζονται σε κάποιες τεχνικές ή εµπειρικές παρατηρήσεις ή εµπνεύσεις του προγραµµατιστή. Συνήθως, οι προσεγγιστικοί αλγόριθµοι είναι ευριστικοί, αλλά όµως υπάρχουν πολλοί ευριστικοί αλγόριθµοι που δεν είναι προσεγγιστικοί. 17

18 18 ΑΛΓΟΡΙΘΜΟΙ & ΟΜΕΣ Ε ΟΜΕΝΩΝ

19 Κεφάλαιο 2 ΠΙΝΑΚΕΣ 2.1 Εισαγωγή 2.2 Βασικές έννοιες πινάκων 2.3 Αποθήκευση πινάκων 2.4 Ειδικές µορφές πινάκων 19

20 2.1 ΕΙΣΑΓΩΓΗ Εκτός από τους αλγορίθµους, σηµαντική έννοια για την Πληροφορική είναι και η έννοια των δεδοµένων. Τα δεδοµένα αποθηκεύονται στον υπολογιστή µε τη βοήθεια των λεγόµενων δοµών δεδοµένων. Θεωρώντας τους αλγόριθµους και τις δοµές δεδοµένων µια αδιάσπαστη ενότητα µπορεί να λεχθεί, ότι η ενότητα αυτή τελικά αποτελεί τη βάση ενός προγράµµατος που επιλύει ένα πρόβληµα. Αλγόριθµοι + οµές εδοµένων = Προγράµµατα Τα δεδοµένα ενός προβλήµατος αποθηκεύονται στον Η/Υ, είτε στην κύρια µνήµη του ή στη δευτερεύουσα µνήµη του. Η αποθήκευση αυτή δε γίνεται κατά ένα τυχαίο τρόπο αλλά συστηµατικά, δηλαδή χρησιµοποιώντας µία δοµή. Η έννοια της δοµής δεδοµένων (data structure) είναι σηµαντική για την Πληροφορική και ορίζεται µε τον ακόλουθο τυπικό ορισµό. Ορισµός οµή εδοµένων είναι ένα σύνολο αποθηκευµένων δεδοµένων που υφίστανται επεξεργασία από ένα σύνολο λειτουργιών. Κάθε µορφή δοµής δεδοµένων αποτελείται από ένα σύνολο κόµβων (nodes). Οι βασικές λειτουργίες επί των δοµών δεδοµένων είναι οι ακόλουθες: Προσπέλαση (access) πρόσβαση σε ένα κόµβο µε σκοπό να εξετασθεί ή να τροποποιηθεί το περιεχόµενό του Εισαγωγή (insertion) η προσθήκη νέων κόµβων σε µία υπάρχουσα δοµή ιαγραφή (deletion) η αφαίρεση ενός κόµβου από µία υπάρχουσα δοµή Αναζήτηση (searching) γίνεται προσπέλαση των κόµβων µίας δοµής, προκειµένου να εντοπισθούν ένας ή περισσότεροι που έχουν µία δεδοµένη ιδιότητα Ταξινόµηση (sorting) οι κόµβοι µίας δοµής τοποθετούνται σε αύξουσα ή φθίνουσα σειρά Αντιγραφή (copying) 20

21 όλοι οι κόµβοι ή µερικοί από τους κόµβους µίας δοµής αντιγράφονται σε µία άλλη δοµή Συγχώνευση (merging) δύο ή περισσότερες δοµές συνενώνονται σε µία ενιαία δοµή ιαχωρισµός (separation) αποτελεί την αντίστροφη πράξη της συγχώνευσης Στην πράξη σπάνια χρησιµοποιούνται όλες οι λειτουργίες για κάποια δοµή. Παρατηρείται συχνά το φαινόµενο µία δοµή δεδοµένων να είναι αποδοτικότερη από µία άλλη δοµή µε κριτήριο κάποια λειτουργία, για παράδειγµα την αναζήτηση, αλλά λιγότερο αποδοτική για κάποια άλλη λειτουργία, για παράδειγµα την εισαγωγή. Αυτές οι παρατηρήσεις εξηγούν αφ ενός την ύπαρξη διαφορετικών δοµών, και αφ ετέρου τη σπουδαιότητα της επιλογής της κατάλληλης δοµής κάθε φορά. 2.2 ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΠΙΝΑΚΩΝ Με τον όρο στατική δοµή δεδοµένων εννοείται ότι το ακριβές µέγεθος της απαιτούµενης κύριας µνήµης καθορίζεται κατά τη στιγµή του προγραµµατισµού τους, και κατά συνέπεια κατά τη στιγµή της µετάφρασης του προγράµµατος και όχι κατά τη στιγµή της εκτέλεσής του. Μία άλλη σηµαντική διαφορά σε σχέση µε τις δυναµικές δοµές που θα περιγραφούν παρακάτω είναι ότι τα στοιχεία των στατικών δοµών αποθηκεύονται σε συνεχόµενες θέσεις µνήµης. Στην πράξη, οι στατικές δοµές υλοποιούνται µε πίνακες που µας είναι γνωστοί από άλλα µαθήµατα και υποστηρίζονται από κάθε γλώσσα προγραµµατισµού. Μπορούµε να ορίσουµε τον πίνακα ως µια δοµή που περιέχει στοιχεία του ίδιου τύπου (δηλαδή ακέραιους, πραγµατικούς κλπ.). Η δήλωση των στοιχείων ενός πίνακα και η µέθοδος αναφοράς τους εξαρτάται από τη συγκεκριµένη γλώσσα υψηλού επιπέδου που χρησιµοποιείται. Όµως γενικά η αναφορά στα στοιχεία ενός πίνακα γίνεται µε τη χρήση του συµβολικού ονόµατος του πίνακα ακολουθούµενου από την τιµή ενός ή περισσοτέρων δεικτών (indexes) σε παρένθεση ή αγκύλη. Ένας πίνακας µπορεί να είναι µονοδιάστατος, αλλά γενικά µπορεί να είναι δισδιάστατος, τρισδιάστατος και γενικά ν-διάστατος πίνακας. 21

22 Παράδειγµα 1 Εύρεση του ελάχιστου στοιχείου ενός µονοδιάστατου πίνακα. 1 2 n. Αλγόριθµος Ελάχιστο_πίνακα εδοµένα table[n], i, min min = table[1] Για i από 2 µέχρι n Aν table[i] < min τότε Τέλος επανάληψης Εµφάνισε min min = table[i] Τέλος Ελάχιστο_Πίνακα Υλοποίηση στην C: #define N main() int table[n] = 11, 23, 2, 34, 56, 65, 7, 9, 1, 25; int i, min; min = table[0]; for (i=1; i<n; i++) if (table[i]<min) min = table[i]; printf( Min = %d,min); Παράδειγµα 2 Εύρεση αθροίσµατος στοιχείων δισδιάστατου πίνακα. Αλγόριθµος Άθροισµα_στοιχείων_Πίνακα εδοµένα table[m][n], i, j, sum, row[m], col[n] Για i από 1 µέχρι m Για j από 1 µέχρι n ιάβασε table[i][j] Τέλος επανάληψης Τέλος επανάληψης 22

23 sum = 0; Για i από 1 µέχρι m row[i] = 0 Τέλος επανάληψης Για j από 1 µέχρι n col[j] = 0 Τέλος επανάληψης Για i από 1 µέχρι m Για j από 1 µέχρι n sum = sum + table[i][j] row[i] = row[i] + table[i][j] colo[j] = col[j] + table[i][j] Τέλος επανάληψης Τέλος επανάληψης Εµφάνισε sum Για i από 1 µέχρι m Εµφάνισε row[i] Tέλος επανάληψης Για j από 1 µέχρι n Εµφάνισε col[i] Tέλος επανάληψης Τέλος Άθροισµα_στοιχείων_Πίνακα Υλοποίηση στην C: #define M 5 #define N 5 ΑΛΓΟΡΙΘΜΟΙ & ΟΜΕΣ Ε ΟΜΕΝΩΝ main() int table[m][n], row[m], col[n]; int i, j, sum; for (i=0; i<m; i++) for (j=0; j<n; j++) scanf( %d,&table[i][j]); sum = 0; for (i=0; i<m; i++) row[i] = 0; for (j=0; j<n; j++) col[j] = 0; 23

24 for (i=0; i<m; i++) for (j=0; i<n; i++) sum = sum + table[i][j]; row[i] = row[i] + table[i][j]; col[j] = col[j] + table[i][j]; printf( sum = %d, sum); for (i=0; i<m; i++) printf( row[%d] = %d\n, i, row[i]); for (j=0; j<n; j++) printf( col[%j] = %d\n, j, col[j]); ΑΛΓΟΡΙΘΜΟΙ & ΟΜΕΣ Ε ΟΜΕΝΩΝ table row col sum 2.3 ΑΠΟΘΗΚΕΥΣΗ ΠΙΝΑΚΩΝ Ένας µονοδιάστατος πίνακας p[n] απαιτεί Ν συνεχόµενες θέσεις µνήµης για να αποθηκευτεί. Η αρχική θέση του πίνακα στη µνήµη του Η/Υ θα αναφέρεται µε το συµβολισµό loc(p[lowerbound]), όπου το lowerbound είναι το κάτω όριο του πίνακα πχ. 0. Η θέση του i-οστού στοιχείου του πίνακα p εκφράζεται ως loc(p[i]) = loc(p[lowerbound]) + i lowerbound Θεωρούµε ότι κάθε στοιχείο του πίνακα καταλαµβάνει µία λέξη της κύριας µνήµης του Η/Υ. Οι δύο πιο συνηθισµένοι τρόποι αποθήκευσης ενός δισδιάστατου πίνακα p[m][n] είναι η ιάταξη κατά γραµµές (row-major order) ιάταξη κατά στήλες (column-major order) 24

25 Στην πρώτη µέθοδο φυλάγεται πρώτα η πρώτη γραµµή, ακολουθούµενη από τη δεύτερη γραµµή και τελευταία αποθηκεύεται η m-οστή γραµµή. Στη δεύτερη µέθοδο φυλάγεται πρώτα η πρώτη στήλη, ακολουθούµενη από τη δεύτερη στήλη και τελευταία αποθηκεύεται η n-οστή στήλη. Αν ο πίνακας έχει φυλαχθεί κατά στήλες τότε η θέση του στοιχείου p[i][j] είναι: loc(p[i][j]) = loc(p[0][0]) + i + M*j 2.4 ΕΙ ΙΚΕΣ ΜΟΡΦΕΣ ΠΙΝΑΚΩΝ Αν ο πίνακας έχει κάποια ειδική µορφή τότε είναι δυνατόν να χρησιµοποιηθεί κάποια ιδιαίτερη τεχνική για την ελάττωση του χώρου φύλαξής του. Αυτό γίνεται µε την ευθύνη του προγραµµατιστή που πρέπει να λάβει υπ όψη του τον τρόπο φύλαξης του πίνακα. Τέτοιες µορφές πινάκων είναι οι Συµµετρικοί πίνακες (symmetric) όπου τα στοιχεία είναι συµµετρικά ως προς την κύρια διαγώνιο. Εδώ απαιτούνται n(n+1)/2 θέσεις µνήµης. Τριγωνικοί πίνακες (triangular) όπου τα στοιχεία πάνω ή κάτω της κύριας διαγωνίου είναι 0. Εδώ επίσης απαιτούνται n(n+1)/2 θέσεις µνήµης Τριδιαγώνιοι πίνακες (tridiagonal) όπου όλα τα στοιχεία πλην της κύριας διαγωνίου και των δύο διπλανών διαγωνίων είναι 0. Εδώ απαιτούνται 3*n-2 θέσεις µνήµης Αραιοί πίνακες (sparse) όπου ένα µεγάλο ποσοστό των στοιχείων του πίνακα έχουν την τιµή 0 (συνήθως > 80%). Υπάρχουν πολλοί τρόποι για την αποδοτική από πλευράς χώρου αποθήκευση αραιών πινάκων. Π.χ. ένας τρόπος είναι να αποθηκεύεται κάθε µη µηδενικό στοιχεί του πίνακα ως µία τριάδα αριθµών. Οι δύο πρώτοι αριθµοί δείχνουν τη θέση του στοιχείου στον πίνακα και ο τρίτος αριθµός την τιµή του στοιχείου. έτσι αν υπάρχουν n µη µηδενικά στοιχεία απαιτούνται 3*n θέσεις µνήµης. 25

26 26 ΑΛΓΟΡΙΘΜΟΙ & ΟΜΕΣ Ε ΟΜΕΝΩΝ

27 Κεφάλαιο 3 ΑΝΑ ΡΟΜΗ 3.4 Εισαγωγή 3.5 Υπολογισµός παραγοντικού 3.6 Υπολογισµός δύναµης 27

28 3.1 ΕΙΣΑΓΩΓΗ Αναδροµή είναι η µέθοδος κατά την οποία, σε µία γλώσσα προγραµµατισµού, µία διαδικασία ή συνάρτηση έχει την δυνατότητα να καλεί τον εαυτό της. Η υλοποίηση της αναδροµής βασίζεται στη έννοια της στοίβας. Σε κάθε κλήση µίας υπορουτίνας πρέπει να φυλάγονται οι διευθύνσεις επιστροφής. Όταν µία υπορουτίνα καλεί τον εαυτό της θα πρέπει επίσης να φυλάγονται οι προηγούµενες τιµές των µεταβλητών και να χρησιµοποιούνται όταν τελειώσει η αναδροµική κλήση. Η χρήση της αναδροµής διευκολύνει πολύ τον προγραµµατιστή στην ανάπτυξη και τον έλεγχο ενός προγράµµατος. Θα πρέπει όµως να χρησιµοποιείται µε µέτρο, γιατί η εκτέλεση ενός αναδροµικού προγράµµατος έχει χρονικό κόστος. Γενικά, ανάµεσα σε ένα επαναληπτικό και ένα αναδροµικό πρόγραµµα θα πρέπει να προτιµάµε το πρώτο, εκτός και αν η ανάπτυξή του µας δυσκολεύει ιδιαίτερα. Η αναδροµή ενδείκνυται σε προβλήµατα κάποιας σχετικής πολυπλοκότητας, που εξ ορισµού τα εκφράζουµε αναδροµικά. 3.2 ΥΠΟΛΟΓΙΣΜΟΣ ΠΑΡΑΓΟΝΤΙΚΟΥ Επαναληπτικός ορισµός: n! = 1*2*3*..(n-1)*n Συνάρτηση µε επανάληψη: int factorial(int n) int i,f; f = 1; for (i=2; i<=n; i++) f = f*i; return f; Αναδροµικός ορισµός: n! = 1 αν n = 0, = n*(n-1)! αν n > 0 28

29 Συνάρτηση µε αναδροµή: ΑΛΓΟΡΙΘΜΟΙ & ΟΜΕΣ Ε ΟΜΕΝΩΝ int factorial(int n) int f; if (n = = 0) f = 1; else f = n*factorial(n-1); return f; Ας παρακολουθήσουµε τις τιµές των µεταβλητών κατά την κλήση των δύο συναρτήσεων, π.χ. για n = 4: Επαναληπτική µέθοδος: f = 1 i = 2 f = 1*2 = 2 i = 3 f = 2*3 = 6 i = 4 f = 6*4 = 24 Αναδροµική µέθοδος: factorial(4) = 4*factorial(3) factorial(3) = 3*factorial(2) factorial(2) = 2*factorial(1) factorial(1) = 1*factorial(0) factorial(0) = 1 Ακολούθως, η τελευταία τιµή 1 µεταβιβάζεται στην προηγούµενη κλήση και έτσι υπολογίζεται το factorial(1) = 1. Κατά τον ίδιο τρόπο έχουµε factorial(2) = 2*1 = 2 factorial(3) = 3*2 = 6 factorial(4) = 4*6 = 24 29

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 Εισαγωγή ΕΦΑΡΜΟΣΜΕΝΗ ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ Αναδροµή είναι η µέθοδος κατά την οποία, σε µία γλώσσα προγραµµατισµού, µία διαδικασία ή συνάρτηση έχει την δυνατότητα

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

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

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

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

ΚΕΦΑΛΑΙΟ 3 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ

ΚΕΦΑΛΑΙΟ 3 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ ΚΕΦΑΛΑΙΟ 3 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ Τα δεδομένα (data) είναι η αφαιρετική αναπαράσταση της πραγματικότητας και συνεπώς μία απλοποιημένη όψη της. Η συλλογή των ακατέργαστων δεδομένων και ο συσχετισμός

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

Επιµέλεια Θοδωρής Πιερράτος

Επιµέλεια Θοδωρής Πιερράτος εδοµένα οµές δεδοµένων και αλγόριθµοι Τα δεδοµένα είναι ακατέργαστα γεγονότα. Η συλλογή των ακατέργαστων δεδοµένων και ο συσχετισµός τους δίνει ως αποτέλεσµα την πληροφορία. Η µέτρηση, η κωδικοποίηση,

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

Αλγόριθµοι + οµές εδοµένων = Προγράµµατα

Αλγόριθµοι + οµές εδοµένων = Προγράµµατα 2 ΟΜΕΣ Ε ΟΜΕΝΩΝ 2.1 ΕΙΣΑΓΩΓΗ Εκτός από τους αλγορίθµους, σηµαντική έννοια για την Πληροφορική είναι και η έννοια των δεδοµένων. Τα δεδοµένα αποθηκεύονται στον υπολογιστή µε τη βοήθεια των λεγόµενων δοµών

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

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

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

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

ΑΛΓΟΡΙΘΜΟΙ. Τι είναι αλγόριθμος

ΑΛΓΟΡΙΘΜΟΙ. Τι είναι αλγόριθμος ΑΛΓΟΡΙΘΜΟΙ Στο σηµείωµα αυτό αρχικά εξηγείται η έννοια αλγόριθµος και παραθέτονται τα σπουδαιότερα κριτήρια που πρέπει να πληρεί κάθε αλγόριθµος. Στη συνέχεια, η σπουδαιότητα των αλγορίθµων συνδυάζεται

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

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

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

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

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

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

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

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

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

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

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

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

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

Επανάληψη Θεωρίας. Καστούμης Γιώργος

Επανάληψη Θεωρίας. Καστούμης Γιώργος ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΨΗ ΘΕΩΡΙΑΣ ΚΕΦΑΛΑΙΟ 1 Ορισµοί: Με τον όρο πρόβληµα εννοείται µια κατάσταση η οποία χρήζει αντιµετώπισης, απαιτεί λύση, η δε λύση της δεν είναι γνωστή,

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

Πρόβλημα 29 / σελίδα 28

Πρόβλημα 29 / σελίδα 28 Πρόβλημα 29 / σελίδα 28 Πρόβλημα 30 / σελίδα 28 Αντιμετάθεση / σελίδα 10 Να γράψετε αλγόριθμο, οποίος θα διαβάζει τα περιεχόμενα δύο μεταβλητών Α και Β, στη συνέχεια να αντιμεταθέτει τα περιεχόμενά τους

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

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

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

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

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

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

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

Προηγµένες Υπηρεσίες Τηλεκπαίδευσης στο ΤΕΙ Σερρών

Προηγµένες Υπηρεσίες Τηλεκπαίδευσης στο ΤΕΙ Σερρών Προηγµένες Υπηρεσίες Τηλεκπαίδευσης στο ΤΕΙ Σερρών Το εκπαιδευτικό υλικό που ακολουθεί αναπτύχθηκε στα πλαίσια του έργου «Προηγµένες Υπηρεσίες Τηλεκπαίδευσης στο Τ.Ε.Ι. Σερρών», του Μέτρου «Εισαγωγή και

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

ΑΛΓΟΡΙΘΜΟΙ & ΟΜΕΣ Ε ΟΜΕΝΩΝ (Σηµειώσεις Εργαστηρίου)

ΑΛΓΟΡΙΘΜΟΙ & ΟΜΕΣ Ε ΟΜΕΝΩΝ (Σηµειώσεις Εργαστηρίου) TEΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙ ΕΥΤΙΚΟ Ι ΡΥΜΑ ΣΕΡΡΩΝ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΕΠΙΚΟΙΝΩΝΙΩΝ ΑΛΓΟΡΙΘΜΟΙ & ΟΜΕΣ Ε ΟΜΕΝΩΝ (Σηµειώσεις Εργαστηρίου) Ευάγγελος Γ. Ούτσιος Σέρρες 2004 2 ΠΕΡΙΕΧΟΜΕΝΑ

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

Οι βασικές λειτουργίες (ή πράξεις) που γίνονται σε μια δομή δεδομένων είναι:

Οι βασικές λειτουργίες (ή πράξεις) που γίνονται σε μια δομή δεδομένων είναι: ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Μια δομή δεδομένων στην πληροφορική, συχνά αναπαριστά οντότητες του φυσικού κόσμου στον υπολογιστή. Για την αναπαράσταση αυτή, δημιουργούμε πρώτα ένα αφηρημένο μοντέλο στο οποίο προσδιορίζονται

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

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

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

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

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

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

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

Αλγόριθμοι και Δομές Δεδομένων(Θ) Ευάγγελος Γ. Ούτσιος

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

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

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

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

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

Βασικές δοµές δεδοµένων. Ορολογία λιστών. 8.1 Βασικές έννοιες δοµών δεδοµένων 8.2 Υλοποίηση δοµών δεδοµένων 8.3 Μια σύντοµη υπόθεση εργασίας

Βασικές δοµές δεδοµένων. Ορολογία λιστών. 8.1 Βασικές έννοιες δοµών δεδοµένων 8.2 Υλοποίηση δοµών δεδοµένων 8.3 Μια σύντοµη υπόθεση εργασίας ΚΕΦΑΛΑΙΟ 8: Αφηρηµένοι τύποι δεδοµένων 8.1 οµές δεδοµένων (data structures) 8.1 Βασικές έννοιες δοµών δεδοµένων 8.2 Υλοποίηση δοµών δεδοµένων 8.3 Μια σύντοµη υπόθεση εργασίας Αδόµητα δεδοµένα οδός Ζέας

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

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

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

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

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

Δομές δεδομένων (2) Αλγόριθμοι Δομές δεδομένων (2) Αλγόριθμοι Παράγωγοι τύποι (struct) σύνοψη προηγουμένων Πίνακες: πολλές μεταβλητές ίδιου τύπου Παράγωγοι τύποι ή Δομές (struct): ομαδοποίηση μεταβλητών διαφορετικού τύπου struct Student

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

3 ΟΥ και 9 ΟΥ ΚΕΦΑΛΑΙΟΥ

3 ΟΥ και 9 ΟΥ ΚΕΦΑΛΑΙΟΥ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 3 ΟΥ και 9 ΟΥ ΚΕΦΑΛΑΙΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΠΙΝΑΚΩΝ ΣΤΟΙΒΑΣ ΚΑΙ ΟΥΡΑΣ Α ΜΕΡΟΣ ΘΕΩΡΙΑ ΓΙΑ ΠΙΝΑΚΕΣ 3.1

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

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

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

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

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

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

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

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

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

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

Ορισµοί κεφαλαίου. Σηµαντικά σηµεία κεφαλαίου

Ορισµοί κεφαλαίου. Σηµαντικά σηµεία κεφαλαίου Ορισµοί κεφαλαίου Τα δεδοµένα είναι η αφαιρετική αναπαράσταση της πραγµατικότητας και συνεπώς µια απλοποιηµένη όψη της οµή εδοµένων είναι ένα σύνολο αποθηκευµένων δεδοµένων που υφίστανται επεξεργασία από

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

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

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 23: οµές εδοµένων και Αλγόριθµοι Ενδιάµεση Εξέταση Ηµεροµηνία : ευτέρα, 3 Νοεµβρίου 2008 ιάρκεια : 2.00-4.00 ιδάσκουσα : Άννα Φιλίππου Ονοµατεπώνυµο: ΣΚΕΛΕΤΟΙ

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

Εισαγωγή στις Αρχές της επιστήμης των Η/Υ. Β Λυκείου

Εισαγωγή στις Αρχές της επιστήμης των Η/Υ. Β Λυκείου Εισαγωγή στις Αρχές της επιστήμης των Η/Υ Β Λυκείου Επιστήμη των υπολογιστών μελετά Θεωρητικά θεμέλια Φύση πληροφοριών Φύση αλγορίθμων Φύση υπολογισμών Και τις τεχνολογικές εφαρμογές τους Από τις σκοπιές

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

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

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

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

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

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

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

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

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

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

ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ

ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ (Οι ερωτήσεις µε κίτρινη υπογράµµιση είναι εκτός ύλης για φέτος) ΕΙΣΑΓΩΓΗ Q1. Οι Πρωταρχικοί τύποι (primitive types) στη Java 1. Είναι όλοι οι ακέραιοι και όλοι οι πραγµατικοί

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

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

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

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

Διδάσκων: Κωνσταντίνος Κώστα

Διδάσκων: Κωνσταντίνος Κώστα Διάλεξη Ε4: Επανάληψη Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή σε δενδρικές δομές δεδομένων, Δυαδικά Δένδρα Αναζήτησης Ισοζυγισμένα Δένδρα & 2-3 Δένδρα Διδάσκων: Κωνσταντίνος

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

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

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

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

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

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

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

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

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

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

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

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

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

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ (Σημειώσεις Θεωρίας)

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ (Σημειώσεις Θεωρίας) TEΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΚΕΝΤΡΙΚΗΣ ΜΑΚΕΔΟΝΙΑΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ (Σημειώσεις Θεωρίας) Ευάγγελος Γ. Ούτσιος Σέρρες 2015 2 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ

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

ENOTHTA 3 ΟΜΕΣ Ε ΟΜΕΝΩΝ

ENOTHTA 3 ΟΜΕΣ Ε ΟΜΕΝΩΝ ENOTHTA ΟΜΕΣ Ε ΟΜΕΝΩΝ Ανάπτυξη Εφαρµογών, Αλέξης Μπράιλας,, 000 . ΠΙΝΑΚΕΣ Ανάπτυξη Εφαρµογών, Αλέξης Μπράιλας,, 000 ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ εδοµένα Αλγόριθµοι + οµές εδοµένων = Προγράµµατα Πίνακες Στοίβα και Ουρά

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

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

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

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

2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ

2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ και ΔΟΜΗ ΑΚΟΛΟΥΘΙΑΣ 2.1 Να δοθεί ο ορισμός

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

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

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον ΚΕΦΑΛΑΙΑ 3 και 9 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ ΠΙΝΑΚΕΣ Δεδομένα αφαιρετική αναπαράσταση της πραγματικότητας και συνεπώς μία απλοποιημένη όψη της δηλαδή.

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

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

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

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

ιαφάνειες παρουσίασης #11

ιαφάνειες παρουσίασης #11 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ http://www.corelab.ece.ntua.gr/courses/programming/ ιδάσκοντες: Στάθης Ζάχος (zachos@cs.ntua.gr) Νίκος Παπασπύρου (nickie@softlab.ntua.gr) ιαφάνειες παρουσίασης

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

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

Βασικές οµές εδοµένων Βασικές οµές εδοµένων Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Αφηρηµένοι Τύποι εδοµένων Οι ΑΤ Στοίβα και Ουρά Υλοποίηση των ΑΤ Στοίβα και Ουρά µε ιαδοχική και υναµική Χορήγηση Μνήµης

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

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

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

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

Ανάπτυξη εφαρμογών σε προγραμματιστικό περιβάλλον υποδειγματική διδασκαλία Κεφ. 3 Δομές Δεδομένων & αλγόριθμοι

Ανάπτυξη εφαρμογών σε προγραμματιστικό περιβάλλον υποδειγματική διδασκαλία Κεφ. 3 Δομές Δεδομένων & αλγόριθμοι Ανάπτυξη εφαρμογών σε προγραμματιστικό περιβάλλον υποδειγματική διδασκαλία Κεφ. 3 Δομές Δεδομένων & αλγόριθμοι Αραποστάθης Μάριος Καθηγητής Πληροφορικής Πειραματικού Λυκείου Βαρβακείου http://users.sch.gr/mariosarapostathis

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

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

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

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

#2 Αλγόριθµοι, οµές εδοµένων και Πολυπλοκότητα

#2 Αλγόριθµοι, οµές εδοµένων και Πολυπλοκότητα #2 Αλγόριθµοι, οµές εδοµένων και Πολυπλοκότητα ηµήτρης Ν. Σερπάνος Εργαστήριο Συστηµάτων Υπολογιστών Τµήµα Ηλεκτρολόγων Μηχ. & Τεχνολογίας Υπολογιστών Αλγόριθµοι, οµές εδοµένων και Πολυπλοκότητα Αλγόριθµοι:

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

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

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

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

Οι δομές δεδομένων στοίβα και ουρά

Οι δομές δεδομένων στοίβα και ουρά Καθηγητής Πληροφορικής Απαγορεύεται η αναπαραγωγή των σημειώσεων χωρίς αναφορά στην πηγή Βίντεο: https://youtu.be/j8petzztqty Οι δομές δεδομένων στοίβα και ουρά Εισαγωγή Στα πλαίσια του μαθήματος της Ανάπτυξης

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

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

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

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

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

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

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

Φίλη μαθήτρια, φίλε μαθητή,

Φίλη μαθήτρια, φίλε μαθητή, Φίλη μαθήτρια, φίλε μαθητή, Το παρόν τεύχος, εναρμονισμένο πλήρως με το νέο Πρόγραμμα Σπουδών 2015-2016, αποτελεί μια λογική και φυσική συνέχεια του πρώτου τεύχους. Δόθηκε ιδιαίτερη έμφαση στη μεθοδολογία

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

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

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

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

Ανάπτυξη εφαρµογών σε προγραµµατιστικό περιβάλλον (στοιχεία θεωρίας)

Ανάπτυξη εφαρµογών σε προγραµµατιστικό περιβάλλον (στοιχεία θεωρίας) Ανάπτυξη εφαρµογών σε προγραµµατιστικό περιβάλλον (στοιχεία θεωρίας) Εισαγωγή 1. Τι είναι αυτό που κρατάς στα χέρια σου. Αυτό το κείµενο είναι µια προσπάθεια να αποτυπωθεί όλη η θεωρία του σχολικού µε

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

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

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

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

Διάλεξη 12: Δέντρα ΙΙ Δυαδικά Δέντρα

Διάλεξη 12: Δέντρα ΙΙ Δυαδικά Δέντρα Διάλεξη 12: Δέντρα ΙΙ Δυαδικά Δέντρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Δυαδικά Δένδρα Δυαδικά Δένδρα Αναζήτησης (ΔΔΑ) Εύρεση Τυχαίου, Μέγιστου, Μικρότερου στοιχείου Εισαγωγή στοιχείου

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

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

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

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

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

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

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

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

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

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

ΚΕΦΑΛΑΙΟ 8: Αφαίρεση δεδοµένων

ΚΕΦΑΛΑΙΟ 8: Αφαίρεση δεδοµένων ΚΕΦΑΛΑΙΟ 8: Αφαίρεση δεδοµένων 8.1 Βασικές έννοιες δοµών δεδοµένων 8.2 Σχετικές έννοιες 8.3 Υλοποίηση δοµών δεδοµένων 8.4 Μια σύντοµη µελέτη περίπτωσης 8.5 Προσαρµοσµένοι τύποι δεδοµένων 1 Βασικές δοµές

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

Ορισµοί κεφαλαίου. Σηµαντικά σηµεία κεφαλαίου

Ορισµοί κεφαλαίου. Σηµαντικά σηµεία κεφαλαίου Ορισµοί κεφαλαίου Αλγόριθµος είναι µια πεπερασµένη σειρά ενεργειών, αυστηρά καθορισµένων και εκτελέσιµων σε πεπερασµένο χρόνο, που στοχεύουν στην επίλυση ενός προβλήµατος. Σηµαντικά σηµεία κεφαλαίου Κριτήρια

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

7 ο ΓΕΛ Καλλιθέας Οδηγός Α.Ε.Π.Π. ΚΕΦΑΛΑΙΟ 3 ο

7 ο ΓΕΛ Καλλιθέας Οδηγός Α.Ε.Π.Π. ΚΕΦΑΛΑΙΟ 3 ο ΚΕΦΑΛΑΙΟ 3 ο 1. Περιγράψτε τη σχέση εδοµένου-πληροφορίας-αλγορίθµου Τα δεδοµένα (data) είναι η αφαιρετική αναπαράσταση της πραγµατικότητας και συνεπώς µία απλοποιηµένη όψη της. Για παράδειγµα, έστω ένα

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

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

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

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

ΚΕΦΑΛΑΙΟ 3 Ο ΟΜΕΣ Ε ΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ

ΚΕΦΑΛΑΙΟ 3 Ο ΟΜΕΣ Ε ΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ 27 ΚΕΦΑΛΑΙΟ 3 Ο ΟΜΕΣ Ε ΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ ΠΕΡΙΕΧΟΜΕΝΑ Η έννοια της δοµής δεδοµένων Βασικές λειτουργίες επί των δοµών δεδοµένων Κατηγορίες δοµών δεδοµένων Πίνακες Στοίβες Ουρές Αρχεία Λίστες ένδρα -

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

Δομές Δεδομένων. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής. Δομές Δεδομένων. Τμήμα Εφαρμοσμένης Πληροφορικής

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

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

ένδρα (tail, head) Γονέας Παιδί (ancestor, descendant) Φύλλο Εσωτερικός Κόµβος (leaf, non-leaf) που αποτελεί το γονέα του v.

ένδρα (tail, head) Γονέας Παιδί (ancestor, descendant) Φύλλο Εσωτερικός Κόµβος (leaf, non-leaf) που αποτελεί το γονέα του v. ΕΝΟΤΗΤΑ 4 ΕΝ ΡΑ ΗΥ240 - Παναγιώτα Φατούρου 1 ένδρα Κόµβοι (nodes) Ακµές (edges) Ουρά και κεφαλή ακµής (tail, head) Γονέας Παιδί Αδελφικός κόµβος (parent, child, sibling) Μονοπάτι (path) Πρόγονος απόγονος

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

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

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

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

υναµικές οµές εδοµένων

υναµικές οµές εδοµένων υναµικές οµές εδοµένων Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: υναµικές οµές εδοµένων Γενικά υναµική έσµευση Μνήµης οµή τύπου structure αυτοαναφορικές δοµές Η δήλωση typedef στη C Αναπαράσταση

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

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

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον ΚΕΦΑΛΑΙΟ 2 2.4 Βασικές συνιστώσες/εντολές ενός αλγορίθμου 2.4.1 Δομή ακολουθίας ΚΕΦΑΛΑΙΟ 7 7.1 7.9 Σταθερές (constants): Προκαθορισμένες τιμές που παραμένουν

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

Διάλεξη 05: Αφηρημένοι Τύποι Δεδομένων

Διάλεξη 05: Αφηρημένοι Τύποι Δεδομένων Διάλεξη 05: Αφηρημένοι Τύποι Δεδομένων Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Αφηρημένοι Τύποι Δεδομένων (ΑΤΔ) Οι ΑΤΔ Στοίβα και Ουρά Υλοποίηση των ΑΤΔ Στοίβα και Ουρά ΕΠΛ231 Δομές Δεδομένων

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

Διασυνδεδεμένες Δομές. Δυαδικά Δέντρα. Προγραμματισμός II 1

Διασυνδεδεμένες Δομές. Δυαδικά Δέντρα. Προγραμματισμός II 1 Διασυνδεδεμένες Δομές Δυαδικά Δέντρα Προγραμματισμός II 1 lalis@inf.uth.gr Δέντρα Τα δέντρα είναι κλασικές αναδρομικές δομές Ένα δέντρο αποτελείται από υποδέντρα, καθένα από τα οποία μπορεί να θεωρηθεί

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

ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 5. Αφηρημένοι Τύποι Δεδομένων / Στοίβες και Ουρές

ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 5. Αφηρημένοι Τύποι Δεδομένων / Στοίβες και Ουρές ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 5. Αφηρημένοι Τύποι Δεδομένων / Στοίβες και Ουρές ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 2 Διάλεξη 05: Αφηρημένοι Τύποι Δεδομένων Στην ενότητα αυτή θα μελετηθούν τα

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

Insert(K,I,S) Delete(K,S)

Insert(K,I,S) Delete(K,S) ΕΝΟΤΗΤΑ 5 ΣΥΝΟΛΑ & ΛΕΞΙΚΑ Φατούρου Παναγιώτα 1 Σύνολα (Sets) Τα µέλη ενός συνόλου προέρχονται από κάποιο χώρο αντικειµένων/στοιχείων (π.χ., σύνολα αριθµών, λέξεων, ζευγών αποτελούµενα από έναν αριθµό και

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

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

ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ : Γ ΛΥΚΕΙΟΥ ΣΠΟΥΔΕΣ ΟΙΚΟΝΟΜΙΑΣ & ΠΛΗΡΟΦΟΡΙΚΗΣ ΑΡΧΗ 1ης ΣΕΛΙ ΑΣ ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ : Γ ΛΥΚΕΙΟΥ ΣΠΟΥΔΕΣ ΟΙΚΟΝΟΜΙΑΣ & ΠΛΗΡΟΦΟΡΙΚΗΣ ΔΙΑΓΩΝΙΣΜΑ ΠΕΡΙΟΔΟΥ : ΦΕΒΡΟΥΑΡΙΟΥ ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ : 7 ΘΕΜΑ Α :

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

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

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

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

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

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ Διάλεξη 10: Λίστες Υλοποίηση & Εφαρμογές Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Ευθύγραμμες Απλά Συνδεδεμένες Λίστες (εύρεση, εισαγωγή, διαγραφή) Σύγκριση Συνδεδεμένων Λιστών με Πίνακες

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

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

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

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

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

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

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

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

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

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

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

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

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

Βασικές Δομές Δεδομένων

Βασικές Δομές Δεδομένων Βασικές Δομές Δεδομένων Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Αφηρημένοι Τύποι Δεδομένων Οι ΑΤΔ Στοίβα και Ουρά Υλοποίηση των ΑΤΔ Στοίβα και Ουρά με Διαδοχική και Δυναμική Χορήγηση

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ Κεφάλαιο 2 ο. Επικοινωνία:

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ Κεφάλαιο 2 ο. Επικοινωνία: Επικοινωνία: spzygouris@gmail.com Να δοθεί ο ορισμός του Αλγορίθμου. Αλγόριθμος, σύμφωνα με το βιβλίο, είναι μια πεπερασμένη σειρά ενεργειών (όχι άπειρες), αυστηρά καθορισμένων και εκτελέσιμων σε πεπερασμένο

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

Αναδροµή. Σε αυτήν την (βοηθητική) ενότητα θα µελετηθούν τα εξής : Η έννοια της αναδροµής Υλοποίηση και αποδοτικότητα Αφαίρεση της αναδροµής

Αναδροµή. Σε αυτήν την (βοηθητική) ενότητα θα µελετηθούν τα εξής : Η έννοια της αναδροµής Υλοποίηση και αποδοτικότητα Αφαίρεση της αναδροµής Αναδροµή Σε αυτήν την (βοηθητική) ενότητα θα µελετηθούν τα εξής : Η έννοια της αναδροµής Υλοποίηση και αποδοτικότητα Αφαίρεση της αναδροµής 1 Αναδροµή Βασική έννοια στα Μαθηµατικά και στην Πληροφορική.

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

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

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 3. Στοίβες & Ουρές 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 19/10/2017 Ανακεφαλαίωση:

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

ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ ΚΕΦΑΛΑΙΟ 2 ο ΚΕΦΑΛΑΙΟ 7 ο ΕΡΩΤΗΣΕΙΣ ΓΕΝΙΚΑ ΠΕΡΙ ΑΛΓΟΡΙΘΜΩΝ

ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ ΚΕΦΑΛΑΙΟ 2 ο ΚΕΦΑΛΑΙΟ 7 ο ΕΡΩΤΗΣΕΙΣ ΓΕΝΙΚΑ ΠΕΡΙ ΑΛΓΟΡΙΘΜΩΝ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ ΚΕΦΑΛΑΙΟ 2 ο ΚΕΦΑΛΑΙΟ 7 ο ΕΡΩΤΗΣΕΙΣ ΓΕΝΙΚΑ ΠΕΡΙ ΑΛΓΟΡΙΘΜΩΝ 1. Έστω ότι ο καθηγητής σας δίνει δύο αριθμούς και σας ζητάει να του πείτε πόσο είναι το άθροισμά τους. Διατυπώστε

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

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

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

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

ΚΕΦΑΛΑΙΟ 2 ο. αποτέλεσµα προς το χρήστη ή προς έναν άλλο αλγόριθµο. 7 ο ΓΕΛ Καλλιθέας Οδηγός Α.Ε.Π.Π.

ΚΕΦΑΛΑΙΟ 2 ο. αποτέλεσµα προς το χρήστη ή προς έναν άλλο αλγόριθµο. 7 ο ΓΕΛ Καλλιθέας Οδηγός Α.Ε.Π.Π. ΚΕΦΑΛΑΙΟ 2 ο 1. Τι είναι αλγόριθµος; Η θεωρία των αλγορίθµων έχει µεγάλη παράδοση και η ηλικία ορισµένων από αυτών είναι µερικών χιλιάδων χρόνων, όπως του Ευκλείδη για τον υπολογισµό του ΜΚ δύο αριθµών

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

Δομημένος Προγραμματισμός (ΤΛ1006)

Δομημένος Προγραμματισμός (ΤΛ1006) Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κρήτης Σχολή Εφαρμοσμένων Επιστημών Τμήμα Ηλεκτρονικών Μηχανικών Τομέας Αυτοματισμού και Πληροφορικής Δομημένος Προγραμματισμός (ΤΛ100) Δρ. Μηχ. Νικόλαος Πετράκης, Καθηγητής

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

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

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

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

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

Δομές Δεδομένων (Data Structures) Δομές Δεδομένων (Data Structures) Στοίβες Ουρές Στοίβες: Βασικές Έννοιες. Ουρές: Βασικές Έννοιες. Βασικές Λειτουργίες. Παραδείγματα. Στοίβες Δομή τύπου LIFO: Last In - First Out (τελευταία εισαγωγή πρώτη

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

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

ΠΛΗΡΟΦΟΡΙΑΚΑ & ΤΗΛΕΠΙΚΟΙΝΩΝΙΑΚΑ ΣΥΣΤΗΜΑΤΑ Οικονοµικό Πανεπιστήµιο Αθηνών Τµήµα ιοικητικής Επιστήµης & Τεχνολογίας ΠΛΗΡΟΦΟΡΙΑΚΑ & ΤΗΛΕΠΙΚΟΙΝΩΝΙΑΚΑ ΣΥΣΤΗΜΑΤΑ Κεφάλαιο 9 οµές εδοµένων σε C Γιώργος Γιαγλής Περίληψη Κεφαλαίου 9 οµές εδοµένων υναµικές

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

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

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ Διάλεξη 8: Αφηρημένοι Τύποι Δεδομένων Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Αφηρημένοι Τύποι Δεδομένων (ΑΤΔ) Οι ΑΤΔ Στοίβα και Ουρά Υλοποίηση των ΑΤΔ Στοίβα και Ουρά με Στατική Δέσμευση

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