Γνωριµία. οµές εδοµένων Εισαγωγή. Βιβλία Μαθήµατος. Επικοινωνία. ιδάσκων: Ορέστης Τελέλης. Ωρες γραφείου (502, Γρ.

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

Download "Γνωριµία. οµές εδοµένων Εισαγωγή. Βιβλία Μαθήµατος. Επικοινωνία. ιδάσκων: Ορέστης Τελέλης. Ωρες γραφείου (502, Γρ."

Transcript

1 Γνωριµία ιδάσκων: οµές εδοµένων Εισαγωγή Ορέστης Τελέλης Ορέστης Τελέλης Τµήµα Ψηφιακών Συστηµάτων, Πανεπιστήµιο Πειραιώς Ωρες γραφείου (502, Γρ.Λαµπράκη 126): Τρίτη 11:00 13:00 Πέµπτη 11:00-13:00 Και κατόπιν συνεννόησης Ηµέρα/ Ωρα µαθήµατος: Πέµπτη 8:15 11:00 Αίθουσα: 108 (Επώνυµα από Α Λ) (Επώνυµα από Μ Ω: Αιθ. 104, Πέµπτη 14:15-17:00, µε τον κ. Χρήστο ουλκερίδη) Ο. Τελέλης οµές εδοµένων 1 / 57 Ο. Τελέλης οµές εδοµένων 2 / 57 Επικοινωνία Βιβλία Μαθήµατος Ιστοσελίδα µαθήµατος: Θέµατα και υλικό σχετικά µε το µάθηµα ΙΑΛΕΞΕΙΣ Lafore R. (2005): οµές εδοµένων και Αλγόριθµοι στη JAVA (µεταφρασµένο), Εκδόσεις Μ. Γκιούρδας. ΑΝΑΚΟΙΝΩΣΕΙΣ ΕΚΦΩΝΗΣΕΙΣ ΕΡΓΑΣΙΩΝ ΠΑΡΑ ΟΣΗ ΕΡΓΑΣΙΩΝ ΒΟΗΘΗΤΙΚΟ ΥΛΙΚΟ... Αρα εγγραφείτε στο µάθηµα! M. Goodrich, R. Tamassia (2013): οµές εδοµένων και Αλγόριθµοι σε Java, (µεταφρ. Μ. Χατζόπουλος), Εκδόσεις ίαυλος. ιαβάστε το βιβλίο, οι διαφάνειες δεν αρκούν! Ο. Τελέλης οµές εδοµένων 3 / 57 Ο. Τελέλης οµές εδοµένων 4 / 57

2 Επιπλέον Πηγές Βαθµολογία ύο (2) Προγραµµατιστικές Εργασίες ( Π1, Π2 ). ( 20% έκαστη ) Γραπτή Εξέταση ( Ε ). ( 70% ) Sedgewick R. (2005): Αλγόριθµοι σε Java,Τόµοι 1-4, 3η αµερικάνικη έκδοση (µεταφρασµένο), Εκδόσεις Κλειδάριθµος. T. H. Cormen, C. E. Leiserson, R. Rivest, C. Stein. Εισαγωγή στους Αλγορίθµους. Τόµος Ι (Μεταφρασµένος). Πανεπιστηµιακές Εκδόσεις Κρήτης, Βαθµολογία ( Β ): Τελικός Βαθµός: Β = B 0 = 0.7 Ε (Π1 + Π2) { min{ 10, B0, αν Ε 4 min{ 4, B 0, αν Ε < 4 ηλαδή: η (ϐαθµολογική) επιτυχία στο µάθηµα απαιτεί Ε 4. ΠΡΟΣΟΧΗ!!! Οι εργασίες του µαθήµατος παραδίδονται ΜΟΝΟ στην περίοδο της διδασκαλίας του. ΟΧΙ το Σεπτέµβριο (ΟΧΙ τον Ιούνιο, αν υπάρξει εξέταση). Ο. Τελέλης οµές εδοµένων 5 / 57 Ο. Τελέλης οµές εδοµένων 6 / 57 Εργαστήρια Σκοπός Μαθήµατος ιδάσκουσα: ρ. Βασιλική Κούφη. 3-4 διαφορετικά (ανάλογα µε τη διαθεσιµότητα ϕυσικών χώρων). Προαιρετικά. Για την ενίσχυση της κατανόησης των δοµών και των σχετικών αλγορίθµων. Παρουσίαση ϐασικών δοµών δεδοµένων. Η χρήση τους στην ανάπτυξη προγραµµάτων. Για την εµπειρία υλοποίησης αλγοριθµικών κατασκευών. Σας µένει ο κώδικας που ϑα γράψουµε στα εργαστήρια. Υλοποίηση δοµών µε χρήση της γλώσσας προγραµµατισµού Java. 4 Τµήµατα ( 2 για καθένα από τα τµήµατα Α-Λ, Μ-Ω ) ϑα ανακοινωθούν. Βασικές γνώσεις της Java θεωρούνται προαπαιτούµενο. Ωρες και Τόπος: ϑα ανακοινωθούν. Απευθύνονται κατά προτεραιότητα στους φοιτητές του 2ου Ετους Ο. Τελέλης οµές εδοµένων 7 / 57 Ο. Τελέλης οµές εδοµένων 8 / 57

3 Περιεχόµενα Μαθήµατος Ανάλυση Αλγορίθµων. 1 Πίνακες. 2 Ουρές και Στοίβες. 3 Συνδεδεµένες Λίστες. Αναδροµή. Ταξινόµηση. Απλά Συνδεδεµένες. ιπλά Συνδεδεµένες. Κυκλικά Συνδεδεµένες. οµές ένδρων 1 υαδικά ένδρα Αναζήτησης. 2 ένδρα AVL. 3 Κοκκινό-µαυρα ένδρα. 4 ένδρα ένδρα B. Σωροί και Ουρές Προτεραιότητας. Πίνακες Κατακερµατισµού. Γραφήµατα. Εισαγωγικές Εννοιες Ο. Τελέλης οµές εδοµένων 9 / 57 Ο. Τελέλης οµές εδοµένων 10 / 57 οµές εδοµένων & Αλγόριθµοι οµές εδοµένων ιευθέτηση ή οργάνωση δεδοµένων στη µνήµη (ή στο δίσκο). Πίνακες, Συνδεδεµένες Λίστες, Ουρές, Στοίβες. υαδικά ένδρα, Σωροί. Πίνακες Κατακερµατισµού, Γράφοι. Αλγόριθµοι ιαδικασία εκτέλεσης µιας συγκεκριµένης εργασίας Χειρίζονται τα δεδοµένα που ϐρίσκονται αποθηκευµένα στις δοµές δεδοµένων µε διάφορους τρόπους Αναζήτηση, εισαγωγή, διαγραφή, ταξινόµηση Χρησιµότητα οµών εδοµένων Αποθήκευση πραγµατικών δεδοµένων Παραδείγµατα: Σύστηµα κράτησης εισιτηρίων Βάση δεδοµένων αδειών οδήγησης... Προγραµµατιστικά Εργαλεία: Χρησιµοποιούνται εργαλεία για τη διεκπεραίωση µιας µεγαλύτερης λειτουργίας Μοντελοποίηση πραγµατικού κόσµου Παράδειγµα: Γραφήµατα για αναπαράσταση δροµολογίων αεροπλάνων µεταξύ πόλεων Γραφήµατα για αναπαράσταση σχέσεων σε ένα κοινωνικό δίκτυο Σωστή επιλογή δοµής δεδοµένων δηµιουργεί προϋποθέσεις σηµαντικών ϐελτιώσεων στην αποτελεσµατικότητα ενός προγράµµατος Ο. Τελέλης οµές εδοµένων 11 / 57 Ο. Τελέλης οµές εδοµένων 12 / 57

4 Αλγόριθµοι Παραδείγµατα Πολλοί αλγόριθµοι «εργάζονται» απευθείας σε συγκεκριµένες δοµές. Για τις δοµές δεδοµένων, πρέπει να γνωρίζουµε πώς υλοποιούνται τρεις ϐασικές λειτουργίες. οµή δεδοµένων Πίνακας οµή δεδοµένων Συνδεδεµένη λίστα a b c Εισαγωγή νέων δεδοµένων Αναζήτηση συγκεκριµένου στοιχείου ιαγραφή συγκεκριµένου στοιχείου Αλγόριθµος Αναζήτηση Εισαγωγή ιαγραφή Αλγόριθµος Αναζήτηση Εισαγωγή ιαγραφή Ο. Τελέλης οµές εδοµένων 13 / 57 Ο. Τελέλης οµές εδοµένων 14 / 57 Υπόλοιπο Σηµερινού Μαθήµατος... Αντικειµενοστρεφής Προγραµµατισµός Αντικειµενοστρεφής Προγραµµατισµός (Object-Oriented Programming) Ανάλυση & Πολυπλοκότητα Αλγορίθµων Ο. Τελέλης οµές εδοµένων 15 / 57 Ο. Τελέλης οµές εδοµένων 16 / 57

5 Αντικειµενοστρεφής Προγραµµατισµός Κλάσεις (Classes) Αντικείµενα (αντιδιαστολή µε διαδικαστικές γλώσσες προγραµµατισµού). Πιο κοντά στα πραγµατικά αντικείµενα. Ανάγκη ύπαρξης πολλών αντικειµένων του ίδιου τύπου Κλάση: προδιαγραφή για ένα ή περισσότερα αντικείµενα Αντιµετώπιση προβληµάτων που δηµιουργούνται από καθολικά δεδοµένα Αντικείµενο thermostat: Μεταβλητές currenttemp, desiredtemp µπορούν να προσπελαστούν µόνο από τις µεθόδους f_on(), f_off() Το αντικείµενο περιέχει: class Thermostat { private float currenttemp; private float desiredtemp; // Variable // Variable Μεθόδους public void f_on(){... // Method Μεταβλητές public void f_off(){... // Method Ο. Τελέλης οµές εδοµένων 17 / 57 Ο. Τελέλης οµές εδοµένων 18 / 57 ηµιουργία Αντικειµένων Για δηµιουργία αντικειµένων χρησιµοποιείται η εντολή new: Thermostat therm1, therm2; // Declaration of References therm1 = new Thermostat(); // Object creation therm2 = new Thermostat(); // Object creation Προσπέλαση µεθόδων αντικειµένων: class List { // Variables // store the items in an array private Object [] items; // the current # of items in the list private int numitems; // Methods public List() { // constructor function items = new Object[10]; numitems = 0; therm1.f_on(); Μέθοδοι κατασκευής (constructor): Καλείται αυτόµατα κάθε ϕορά που δηµιουργείται ένα νέο αντικείµενο. // AddToEnd: add a given item to the end of the list public void AddToEnd(Object ob) {... Ο. Τελέλης οµές εδοµένων 19 / 57 Ο. Τελέλης οµές εδοµένων 20 / 57

6 Κληρονοµικότητα (Inheritance) Πολυµορφισµός Η αντιµετώπιση αντικειµένων που ανήκουν σε διαφορετικές κλάσεις µε τον ίδιο τρόπο Προϋπόθεση: οι κλάσεις αυτές να παράγονται από την ίδια base class class Employee { class Secretary extends Employee { class Manager extends Employee { private Collection<Employee> emps; emps = new ArrayList<Employee>(); class MountainBike extends Bicycle { // new fields and methods defining a mountain bike would go here emps.add(new Secretary("X")); emps.add(new Manager("Y")); for (Employee e : emps) { System.out.println(e.display()); Ο. Τελέλης οµές εδοµένων 21 / 57 Ο. Τελέλης οµές εδοµένων 22 / 57 Περίγραµµα Ανάλυση Αλγορίθµων Τι είναι η ανάλυση αλγόριθµου; Κριτήρια ανάλυσης αλγορίθµων. Πως εκτιµούµε το χρόνο εκτέλεσης ενός αλγόριθµου; Ο. Τελέλης οµές εδοµένων 23 / 57 Ο. Τελέλης οµές εδοµένων 24 / 57

7 Ανάλυση Αλγορίθµων: Ορισµοί Ανάλυση Αλγορίθµων: Κριτήρια Αλγόριθµος: Αλγόριθµος είναι µια πεπερασµένη ακολουθία σαφών οδηγιών (ϐηµάτων) για την εκτέλεση ενός υπολογισµού ή την επίλυση ενός προβλήµατος. Πρόγραµµα (Υλοποίηση): Τυπική περιγραφή αλγόριθµου σε µία γλώσσα προγραµµατισµού. Ροή Εργασίας: Πρόβληµα = Αλγόριθµος = Ελεγχος ορθότητας = Καθορισµός Πόρων Ορθότητα. Απαιτεί σαφή διατύπωση της αναµενόµενης λειτουργίας. Περιγραφή συνθηκών που πρέπει να πληρούν τα δεδοµένα εισόδου. Αναµενόµενα αποτελέσµατα. Οταν τα δεδοµένα εισόδου ικανοποιούν τις αναγκαίες συνθήκες: ο αλγόριθµος τερµατίζει παράγοντας τα αναµενόµενα αποτελέσµατα. Απαιτήσεις σε µνήµη. δεδοµένα εισόδου, Μνήµη που απαιτείται για να αποθηκευτούν: επιπλέον ενδιάµεσα δεδοµένα που δηµιουργεί/χρησιµοποιεί ο αλγόριθµος Χρόνος εκτέλεσης. Ταχύτητα εκτέλεσης των λειτουργιών για την ολοκλήρωση υπολογισµών. Ο. Τελέλης οµές εδοµένων 25 / 57 Ο. Τελέλης οµές εδοµένων 26 / 57 Ανάλυση Αλγορίθµων: Εισαγωγή Προσεγγίσεις Ανάλυσης Αλγόριθµου Η ανάγκη επεξεργασίας µεγάλου όγκου δεδοµένων απαιτεί τη χρήση υπολογιστή. Οταν ένα πρόγραµµα «τρέχει» σε µεγάλο όγκο δεδοµένων πρέπει να ϐεβαιωθούµε ότι ϑα τερµατίσει µέσα σε αποδεκτά χρονικά πλαίσια. Ο χρόνος εκτέλεσης, για δεδοµένο υλικό εξαρτάται από: Πειραµατική Θεωρητική 1 Γλώσσα προγραµµατισµού / Μεταγλωττιστή / ιερµηνευτή. 2 Μεθοδολογία (διαδικαστική vs. αντικειµενοστρεφή). 3 Επιλογή αλγορίθµου και δοµών δεδοµένων. Ο. Τελέλης οµές εδοµένων 27 / 57 Ο. Τελέλης οµές εδοµένων 28 / 57

8 Πειραµατική Μελέτη Περιορισµοί Πειραµατικής Μελέτης Γράψε ένα πρόγραµµα που να υλοποιεί τον αλγόριθµο. «Τρέξε» τον αλγόριθµο χρησιµοποιώντας δεδοµένα εισόδου διαφορετικού µεγέθους και σύνθεσης. Μέτρησε το χρόνο εκτέλεσης (runtime). Σχεδίασε τη γραφική παράσταση των αποτελεσµάτων. Απαραίτητη η (τυπική) υλοποίηση του αλγόριθµου: µπορεί να έχει τεχνικές δυσκολίες (σε σχέση µε την άτυπη περιγραφή), µπορεί να είναι χρονοβόρα (π.χ., πολλαπλές µικρότερες διαδικασίες) Καλή κλιµάκωση των δεδοµένων εισόδου; Σύγκριση δύο αλγορίθµων απαιτεί: Ιδιο µηχανικό εξοπλισµό (hardware) Ιδιο λογισµικό (software). Τα αποτελέσµατα πρέπει να είναι αναπαράξιµα! Ο. Τελέλης οµές εδοµένων 29 / 57 Ο. Τελέλης οµές εδοµένων 30 / 57 Θεωρητική Ανάλυση Τι είναι η Ανάλυση Αλγόριθµου Χρήση υψηλού επιπέδου περιγραφής του αλγορίθµου: και όχι της τυπικής υλοποίησης σε κάποια γλώσσα προγραµµατισµού. Χρόνος εκτέλεσης ως συνάρτηση του µεγέθους της εισόδου ( n ). Ανάλυση αλγόριθµου: Ο χρόνος που απαιτείται για την εκτέλεση ενός αλγόριθµου εξαρτάται από το µέγεθος της εισόδου που πρέπει να επεξεργαστεί. Περισσότερα δεδοµένα εισόδου = Μεγαλύτερος χρόνος εκτέλεσης. Ενδιαφέρει η συµπεριφορά της συνάρτησης καθώς το n αυξάνει αυθαίρετα. Χρόνος εκτέλεσης προγράµµατος = F(Input Size) Ανω ϕράγµα χρόνου «χειρότερης περίπτωσης» (για οποιαδήποτε είσοδο). Η ακριβής τιµή της συνάρτησης F εξαρτάται από πολλούς παράγοντες: Αξιολόγηση αλγορίθµου ανεξάρτητα από εξοπλισµό, υλοποίηση, κ.λ.π. Μετρά στοιχειώδεις λειτουργίες (ϐήµατα) και όχι πραγµατικό χρόνο. ταχύτητα της µηχανής, ποιότητα µεταγλωττιστή, ποιότητα προγράµµατος. Ο. Τελέλης οµές εδοµένων 31 / 57 Ο. Τελέλης οµές εδοµένων 32 / 57

9 Linear O(NlogN) Quadratic Cubic Linear O(NlogN) Quadratic Cubic Running Time Running Time Input Size N Input Size N Ο. Τελέλης οµές εδοµένων 33 / 57 Ο. Τελέλης οµές εδοµένων 33 / 57 Μέση vs. Χειρότερη Περίπτωση Χρόνου Εκτέλεσης Ασυµπτωτικές προσεγγίσεις: συµβολισµός O( ) Από τις πιο συνηθισµένες συναρτήσεις που συναντώνται στην ανάλυση αλγορίθµων, η γραµµική αντιστοιχεί στον πιο αποδοτικό αλγόριθµο (γιατί;) Ενας αλγόριθµος µπορεί να εκτελείται γρηγορότερα µε συγκεκριµένα σύνολα δεδοµένων από ότι µε κάποια άλλα. Η εύρεση της µέσης περίπτωσης µπορεί να είναι πολύ δύσκολη, έτσι οι αλγόριθµοι τυπικά µετρώνται µε ϐάση τη χειρότερη περίπτωση πολυπλοκότητας. Σε συγκεκριµένα πεδία εφαρµογής (π.χ. air traffic control, surgery) η γνώση της χειρότερης περίπτωσης πολυπλοκότητας είναι πολύ σηµαντική.. Η σύγκριση συναρτήσεων για µικρά σύνολα εισόδου είναι δύσκολη. Οι σταθερές ϕαίνεται να επηρεάζουν σηµαντικά τη συνάρτηση. Οι διαφορές ανάµεσα στις καµπύλες που αντιπροσωπεύουν την αύξηση της συνάρτησης χρόνου εκτέλεσης αλγορίθµων είναι ευδιάκριτες για µεγάλα σύνολα δεδοµένων. Γενικά: Οι δευτεροβάθµιας πολυπλοκότητας ( O(N 2 ) ) αλγόριθµοι δεν είναι πρακτικοί για δεδοµένα εισόδου που ξεπερνούν τις µερικές χιλιάδες. Οι κυβικής πολυπλοκότητας ( O(N 3 ) ) αλγόριθµοι γίνονται µη πρακτικοί για µεγέθη δεδοµένων εισόδου τόσο µικρά, όσο µερικές εκατοντάδες. Ο. Τελέλης οµές εδοµένων 34 / 57 Ο. Τελέλης οµές εδοµένων 35 / 57

10 Ασυµπτωτικές προσεγγίσεις: συµβολισµός O( ) Ασυµπτωτικός Συµβολισµός Ορισµός: Για συναρτήσεις: f : N R + και g : N R + ορίζουµε: Χρειαζόµαστε ένα τυπικό συµβολισµό για να προσδιορίσουµε τον επικρατέστερο όρο σε µία συνάρτηση και να αναπαραστήσουµε το ϱυθµό αύξησης. O( ) συµβολισµός επιτρέπει να ορίσουµε µια σχετική σειρά ανάµεσα στις συναρτήσεις συγκρίνοντας τους επικρατέστερους όρους. f(n) O( g(n) ) αν υπάρχουν σταθερές C R +, n 0 N + τέτοιες ώστε: f(n) C g(n), για κάθε n n 0 ( ) O( g(n) ) είναι το το σύνολο όλων των συναρτήσεων f, για τις οποίες ισχύει η σχέση ( ) (µε κατάλληλα C και n 0 για κάθε διαφορετική f). Εχει επικρατήσει να γράφουµε απλώς f(n) = O( g(n) ). Οµως εννοούµε, και όχι ισότητα!!! Το «=» αυτό δεν είναι συµµετρικό δε γράφουµε O( g(n) ) = f(n). Ο. Τελέλης οµές εδοµένων 36 / 57 Ο. Τελέλης οµές εδοµένων 37 / 57 Φυσική Ερµηνεία Παράδειγµα (1α) cg(n) Παράδειγµα: η f(n) = n 2 + 2n + 1 είναι O(n 2 ). f(n) Παρατηρούµε ότι για n 1 έχουµε n n 2, 1 n 2, εποµένως: f(n) = n 2 + 2n + 1 < n 2 + 2n 2 + n 2 = 4n 2 n 0 f = O(g) Η f(n) µεγαλώνει το πολύ τόσο γρήγορα όσο ένα σταθερό πολλαπλάσιο της g(n), καθώς το n πηγαίνει στο άπειρο. Εποµένως, µπορούµε να ϑέσουµε n 0 = 1 και C = 4. Εναλλακτικά, ϑα µπορούσαµε να ϑέσουµε επίσης n 0 = 2 και C = 3. Ο. Τελέλης οµές εδοµένων 38 / 57 Ο. Τελέλης οµές εδοµένων 39 / 57

11 Παράδειγµα (1β) Παραδείγµατα (2) 8 6 n 2 + 2n + 1 4n 2 n 2 Παράδειγµα: 7n 3 O(n) Τεκµηρίωση: Ο. Τελέλης οµές εδοµένων 40 / 57 Ο. Τελέλης οµές εδοµένων 41 / 57 Παραδείγµατα (2) Παράδειγµα (3) Παράδειγµα: 20n n log n + 5 O(n 3 ) Παράδειγµα: 7n 3 O(n) Τεκµηρίωση: Τεκµηρίωση: Υπάρχουν c, n 0 τέτοια ώστε 7n 3 c n, για κάθε n n 0. Θέτουµε c = 7, n 0 = 1. Τότε: 7n 3 7n, για κάθε n 1. Ο. Τελέλης οµές εδοµένων 41 / 57 Ο. Τελέλης οµές εδοµένων 42 / 57

12 Παράδειγµα (3) Υπολογισµός O( ) Παράδειγµα: 20n n log n + 5 O(n 3 ) Τεκµηρίωση: Υπάρχουν c, n 0 τέτοια ώστε: 20n n log n + 5 c n 3, για κάθε n n 0 Ισχύουν: 20n 3 20 n 3 για κάθε n 1 10n log n 10 n 3 για κάθε n n 3 για κάθε n 1 Εποµένως: 20n n log n + 5 ( ) n 3 = 35 n 3 Αρα, c = 35 και n 0 = 1. Παρότι αληθεύει ότι 7n 3 είναι O(n 5 ), ο O( ) χαρακτηρισµός πρέπει να είναι όσο το δυνατό πιο µικρής τάξης. Απλοί κανόνες Παράδειγµα: αγνόησε τις σταθερές. επίλεξε τη συνάρτηση του n που αυξάνεται ταχύτερα. Εστω ότι ένας αλγόριθµος έχει την ακόλουθη συνάρτηση αύξησης: f(n) = 16n 2 + 3n + 7 = n 2 + n - σβήσε τις σταθερές = n 2 - σβήσε τις µικρότερες τιµές του n Εστω f(n) = 8n 2 log n + 5n 2 + n = O(n 2 log n) Ο. Τελέλης οµές εδοµένων 42 / 57 Ο. Τελέλης οµές εδοµένων 43 / 57 O( )-Ιεραρχία Απλών Συναρτήσεων O( )-Ιεραρχία Απλών Συναρτήσεων Ενδεικτικοί Χρόνοι Εκτέλεσης Αλγορίθµων σταθερού χρόνου (constant time) λογαριθµικός (logarithmic) O(1) O(logn) Στον άξονα y απεικονίζεται η τιµή log[f(n)], για κάθε συνάρτηση f(n) 10 5 n! n γραµµικός (linear) O(n) nlogn O(nlogn) τετραγωνικός (quadratic) O(n 2 ) πολυωνυµικός (polynomial) O(n k ), k > n n 2 n log n n log n n log n log log n 1 εκθετικός (exponential) O(a n ), n > O(1) O(log n) O(n) O(n log n) O(n 2 ) O(n 3 ) O(2 n ) O(1) O(log log n) O(log n) O((log n) 2 ) O( n) O(n) O(n 2 ) O(2 n ) O(n!) Ο. Τελέλης οµές εδοµένων 44 / 57 Ο. Τελέλης οµές εδοµένων 45 / 57

13 Βασικές Ιδιότητες του O( ) Παραδείγµατα Πολυώνυµα f(n) = a p n p + + a 1 n + a 0, για p N, = f(n) = O(n p ). f 1 (n) = O( g 1 (n) ) f 2 (n) = O( g 2 (n) ) ( { ) = (f 1 + f 2 )(n) = O max g 1 (n), g 2 (n) Να δοθεί εκτίµηση O(g(n)) για καθεµία από τις παρακάτω συναρτήσεις, µε χρήση µιας απλής συνάρτησης g(n) της µικρότερης δυνατής τάξης. f(n) = (n 3 + n 2 log n)(log n + 1) + (17 log n + 19)(n 3 + 2) f 1 (n) = O( g(n) ) f 2 (n) = O( g(n) ) = (f 1 + f 2 )(n) = O( g(n) ) f(n) = (2 n + n 2 )(n n ) f(n) = (n n + n2 n + 5 n )(n! + 5 n ) f 1 (n) = O( g 1 (n) ) f 2 (n) = O( g 2 (n) ) = (f 1 f 2 )(n) = O( g 1 (n)g 2 (n) ) f(n) = (n log n + 1) 2 + (log n + 1)(n 2 + 1) Ο. Τελέλης οµές εδοµένων 46 / 57 Ο. Τελέλης οµές εδοµένων 47 / 57 Γιατί Χρησιµοποιούµε το Συµβολισµό O( ); Για να ϕράξουµε το σφάλµα που κάνουµε όταν αγνοούµε µικρούς όρους στους µαθηµατικούς τύπους. Για να ϕράξουµε το σφάλµα που κάνουµε όταν αγνοούµε µέρη ενός προγράµµατος τα οποία συµβάλλουν κατά ένα µικρό ποσοστό στο συνολικό πρόγραµµα που αναλύουµε. Παραδείγµατα Ανάλυσης Πολυπλοκότητας Για να µπορούµε να ταξινοµήσουµε τους αλγορίθµους µε ϐάση τα άνω ϕράγµατα των συνολικών χρονων εκτέλεσής τους. Ο. Τελέλης οµές εδοµένων 48 / 57 Ο. Τελέλης οµές εδοµένων 49 / 57

14 Παράδειγµα 1 Παράδειγµα 1 int k = 0; for (int i = 0; i < n; i++) k += i; int k = 0; for (int i = 0; i < n; i++) k += i; Ανάλυση Ανάλυση Η στοιχειώδης πράξη k+=i; αποτελεί ένα (1) ϐήµα (χρόνου O(1) ). Ο αλγόριθµος εκτελεί τη ϐασική πράξη n ϕορές. 1 = n 0 i<n Ο αλγόριθµος έχει πολυπλοκότητα O(n). Ο. Τελέλης οµές εδοµένων 50 / 57 Ο. Τελέλης οµές εδοµένων 50 / 57 Παράδειγµα 2 Παράδειγµα 2 int sum=0; for (i = 0; i < n; i++) for (j = 0; j < n; j++) sum++; // External Loop // Internal Loop int sum=0; for (i = 0; i < n; i++) for (j = 0; j < n; j++) sum++; // External Loop // Internal Loop Ανάλυση Ανάλυση Εξωτερικός Βρόχος: ( ) χρόνος εσωτερικού ϐρόχου 0 j<n Εσωτερικός Βρόχος: 0 i<n 1 = n ( ) = n χρόνος εσωτερικού ϐρόχου Ολικός χρόνος εκτέλεσης: n 1 n 1 1 = n n = O(n 2 ) j=0 i=0 Ο. Τελέλης οµές εδοµένων 51 / 57 Ο. Τελέλης οµές εδοµένων 51 / 57

15 Παράδειγµα 3 Παράδειγµα 3 for (i = 1; i <= n; i++) for (j = 1; j <= i*i; j++) sum++; for (i = 1; i <= n; i++) for (j = 1; j <= i*i; j++) sum++; Ανάλυση Ανάλυση Εξωτερικός Βρόχος: n ( ) χρόνος εσωτερικού ϐρόχου(i) i=1 i i Εσωτερικός ϐρόχος: 1 = i 2. j=1 Συνολικά: n i i 1 = i=1 j=1 n i 2 = i=1 n(n + 1)(2n + 1) 6 = O(n 3 ) Ο. Τελέλης οµές εδοµένων 52 / 57 Ο. Τελέλης οµές εδοµένων 52 / 57 Παράδειγµα 4 Παράδειγµα 4 int sum=0; for (i=0; i<n; i++) if ((n mod 2) == 0) // n even for (j=0; j<n; j++) sum++; else // n odd sum--; Ανάλυση int sum=0; for (i=0; i<n; i++) if ((n mod 2) == 0) // n even for (j=0; j<n; j++) sum++; else // n odd sum--; Ανάλυση 1 Εξωτερικός ϐρόχος: n επαναλήψεις 2 Εσωτερικός ϐρόχος: n επαναλήψεις εκτελείται µόνο αν n άρτιος!..., αλλιώς (αν n περιττός), O(1) χρόνος. 3 Εποµένως, ολικός χρόνος: αν n άρτιος O(n 2 ), αν n περιττός, O(n). 4 Χρόνος Χειρότερης Περίπτωσης: O(n 2 ). Ο. Τελέλης οµές εδοµένων 53 / 57 Ο. Τελέλης οµές εδοµένων 53 / 57

16 Παράδειγµα 5 Αλγόριθµος υπολογισµού προθεµατικών µέσων Είσοδος: πίνακας n αριθµητικών στοιχείων. Εξοδος: πίνακας n αριθµών όπου ο A[i] είναι ο µέσος όρος των X[0],..., X[i]. for (int i = 0; i < n; i++) { int a = 0; for (int j = 0; j < i; j++) { a = a + X[j]; A[i] = a/(i+1); return A; Στοιχειώδεις πράξεις: πρόσθεση, διαίρεση, ανάθεση τιµής, ανάγνωση τιµής. Ο. Τελέλης οµές εδοµένων 54 / 57 Παράδειγµα 5 (Ανάλυση) Εντός του Εξωτερικού και Εκτός του Εσωτερικού) Βρόχου: c = O(1), d = O(1) Στοιχειώδεις Πράξεις. n 1 ( ) Εξωτερικός Βρόχος: c + χρόνος εσωτερικού ϐρόχου(i) i=0 i Εσωτερικός ϐρόχος: d = d (i + 1), d = O(1). j=0 ( ) n 1 i n 1 Συνολικά: c + d c n + d (i + 1) = c n + d i=0 j=0 i=0 n i = c n + d 2 n(n + 1) = O(n2 ) i=1 Ο. Τελέλης οµές εδοµένων 55 / 57 Πιο Απλή Ανάλυση Παράδειγµα 6 Ο εξωτερικός ϐρόχος εκτελείται n ϕορές (για i = 0,..., n 1). Εντός του (και εκτός του εσωτερικού): O(1) στοιχειώδες πράξεις. Ο εσωτερικός ϐρόχος εκτελείται i + 1 ϕορές, για i = 0,..., n 1. Αρα, (ο εσωτερικός) εκτελείται το πολύ n ϕορές, για i = 0,..., n 1. Εντός του εωτερικού ϐρόχου συµβαίνουν O(1) στοιχειώδεις πράξεις. Συνολικά: n (O(1) + n O(1)) = O(n 2 ). Βελτιωµένος Αλγόριθµος υπολογισµού προθεµατικών µέσων Είσοδος: πίνακας n αριθµητικών στοιχείων. Εξοδος: πίνακας n αριθµών όπου ο A[i] είναι ο µέσος όρος των X[0],..., X[i]. int s = 0; for(int i = 0; i < n; i++) { s = s + X[i]; A[i] = s/(i+1); return A; Πολυπλοκότητα; Ο. Τελέλης οµές εδοµένων 56 / 57 Ο. Τελέλης οµές εδοµένων 57 / 57

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

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

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

Ανω Φράγµα στην Τάξη των Συναρτήσεων. Ρυθµός Αύξησης (Τάξη) των Συναρτήσεων. Παράδειγµα (1/2) O( g(n) ) είναι σύνολο συναρτήσεων:

Ανω Φράγµα στην Τάξη των Συναρτήσεων. Ρυθµός Αύξησης (Τάξη) των Συναρτήσεων. Παράδειγµα (1/2) O( g(n) ) είναι σύνολο συναρτήσεων: Ανω Φράγµα στην Τάξη των Συναρτήσεων Ορισµός. Εστω συναρτήσεις: f : N R και g : N R Ρυθµός Αύξησης (Τάξη) των Συναρτήσεων Ορέστης Τελέλης η (τάξη της) f(n) είναι O( g(n) ) αν υπάρχουν σταθερές C και n

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

Ορισµός. Εστω συναρτήσεις: f : N R και g : N R. η f(n) είναι fi( g(n) ) αν υπάρχουν σταθερές C 1, C 2 και n 0, τέτοιες ώστε:

Ορισµός. Εστω συναρτήσεις: f : N R και g : N R. η f(n) είναι fi( g(n) ) αν υπάρχουν σταθερές C 1, C 2 και n 0, τέτοιες ώστε: Συµβολισµός Ω( ) Τάξη των Συναρτήσεων () Εκτίµηση Πολυπλοκότητας Αλγορίθµων Ορέστης Τελέλης telelis@unipi.gr Ορισµός. Εστω συναρτήσεις: f : N R και g : N R η f(n) είναι Ω( g(n) ) αν υπάρχουν σταθερές C

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

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

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

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

Παραδείγµατα. Τάξη των Συναρτήσεων (1) Παράδειγµα (2) Να δειχθεί ότι 7n 2 = O(n 3 ). Ορέστης Τελέλης

Παραδείγµατα. Τάξη των Συναρτήσεων (1) Παράδειγµα (2) Να δειχθεί ότι 7n 2 = O(n 3 ). Ορέστης Τελέλης Τάξη των Συναρτήσεων (1) Ορέστης Τελέλης telelis@unipi.gr Τµήµα Ψηφιακών Συστηµάτων, Πανεπιστήµιο Πειραιώς 1. Να δειχθεί ότι 7n 2 = O(n 3 ) 2. Να δειχθεί ότι η n 2 δεν είναι O(n). 3. Αληθεύει ότι n 3 =

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

Προηγούµενο: Ανω Φράγµα στην Τάξη των Συναρτήσεων. Ρυθµός Αύξησης (Τάξη) των Συναρτήσεων. Σύνοψη Ιδιοτήτων

Προηγούµενο: Ανω Φράγµα στην Τάξη των Συναρτήσεων. Ρυθµός Αύξησης (Τάξη) των Συναρτήσεων. Σύνοψη Ιδιοτήτων Προηγούµενο: Ανω Φράγµα στην Τάξη των Συναρτήσεων Ρυθµός Αύξησης (Τάξη) των Συναρτήσεων Ορέστης Τελέλης η (τάξη της) f() είναι O( g() ) αν υπάρχουν σταθερές C και 0, τέτοιες ώστε: f() C g() για κάθε 0

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

Αρχή Εγκλεισµού-Αποκλεισµού (3 σύνολα) Αρχή Εκλεισµού-Αποκλεισµού Η Τάξη των Συναρτήσεων. Εφαρµογές. Παράδειγµα 1.

Αρχή Εγκλεισµού-Αποκλεισµού (3 σύνολα) Αρχή Εκλεισµού-Αποκλεισµού Η Τάξη των Συναρτήσεων. Εφαρµογές. Παράδειγµα 1. Αρχή Εγκλεισµού-Αποκλεισµού (3 σύνολα) Αρχή Εκλεισµού-Αποκλεισµού Η Τάξη των Συναρτήσεων Ορέστης Τελέλης telelis@unipi.g Τµήµα Ψηφιακών Συστηµάτων, Πανεπιστήµιο Πειραιώς A B C = A + B + C A B B C A C +

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Δοµές Δεδοµένων. 5η Διάλεξη Λίστες και αρχές ανάλυσης αλγορίθµων. Ε. Μαρκάκης

Δοµές Δεδοµένων. 5η Διάλεξη Λίστες και αρχές ανάλυσης αλγορίθµων. Ε. Μαρκάκης Δοµές Δεδοµένων 5η Διάλεξη Λίστες και αρχές ανάλυσης αλγορίθµων Ε. Μαρκάκης Περίληψη Διπλά συνδεδεµένες λίστες Αναπαράσταση γράφων µε λίστες Εµπειρική ανάλυση αλγορίθµων Μαθηµατική ανάλυση αλγορίθµων Αύξηση

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

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

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

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

Ανάλυση Αλγορίθµων 4. Πειραµατικές Μελέτες. Χρόνος Εκτέλεσης. Περιγραφή και Υλικό Ανάγνωσης

Ανάλυση Αλγορίθµων 4. Πειραµατικές Μελέτες. Χρόνος Εκτέλεσης. Περιγραφή και Υλικό Ανάγνωσης Ανάλυση Αλγορίθµων Είσοδος Αλγόριθµος Έξοδος Περιγραφή και Υλικό Ανάγνωσης Χρόνος εκτέλεσης (.) Ψευδοκώδικας (.) Μέτρηση των στοιχειωδών πράξεων (.) Ασυµπτωτική σηµειογραφία (.2) Ασυµπτωτική ανάλυση (.2)

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

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

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

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

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Εισαγωγή. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Εισαγωγή. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Δομές Δεδομένων Εισαγωγή Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Βιβλιογραφία Robert Sedgewick, Αλγόριθμοι σε C, Μέρη 1-4 (Θεμελιώδεις Έννοιες, Δομές Δεδομένων, Ταξινόμηση,

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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-3)

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

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

ιακριτά Μαθηµατικά Ορέστης Τελέλης Τµήµα Ψηφιακών Συστηµάτων, Πανεπιστήµιο Πειραιώς Ο. Τελέλης Πανεπιστήµιο Πειραιώς Σύνολα 1 / 36

ιακριτά Μαθηµατικά Ορέστης Τελέλης Τµήµα Ψηφιακών Συστηµάτων, Πανεπιστήµιο Πειραιώς Ο. Τελέλης Πανεπιστήµιο Πειραιώς Σύνολα 1 / 36 ιακριτά Μαθηµατικά Ορέστης Τελέλης telelis@unipi.gr Τµήµα Ψηφιακών Συστηµάτων, Πανεπιστήµιο Πειραιώς Ο. Τελέλης Πανεπιστήµιο Πειραιώς Σύνολα 1 / 36 Γνωριµία ιδάσκων: Ορέστης Τελέλης e-mail: telelis@unipi.gr

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

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

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

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

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

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

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

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

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

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

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

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

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

Σύνοψη Προηγούµενου. Κανονικές Γλώσσες (1) Προβλήµατα και Γλώσσες. Σε αυτό το µάθηµα. ιαδικαστικά του Μαθήµατος.

Σύνοψη Προηγούµενου. Κανονικές Γλώσσες (1) Προβλήµατα και Γλώσσες. Σε αυτό το µάθηµα. ιαδικαστικά του Μαθήµατος. Σύνοψη Προηγούµενου Κανονικές Γλώσσες () ιαδικαστικά του Μαθήµατος. Ορέστης Τελέλης telelis@unipi.gr Τµήµα Ψηφιακών Συστηµάτων, Πανεπιστήµιο Πειραιώς Εισαγωγή: Υπολογισιµότητα και Πολυπλοκότητα. Βασικές

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

Γνωριµία. ιακριτά Μαθηµατικά. Βιβλία Μαθήµατος. Επικοινωνία. ιδάσκων: Ορέστης Τελέλης. Ωρες γραφείου (502, Γρ.

Γνωριµία. ιακριτά Μαθηµατικά. Βιβλία Μαθήµατος. Επικοινωνία. ιδάσκων: Ορέστης Τελέλης. Ωρες γραφείου (502, Γρ. Γνωριµία ιακριτά Μαθηµατικά Ορέστης Τελέλης telelis@unipi.gr Τµήµα Ψηφιακών Συστηµάτων, Πανεπιστήµιο Πειραιώς ιδάσκων: Ορέστης Τελέλης e-mail: telelis@unipi.gr Ωρες γραφείου (502, Γρ.Λαµπράκη 26): ευτέρα

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

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δοµές Δεδοµένων

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δοµές Δεδοµένων ΟΝΟΜΑΤΕΠΩΝΥΜΟ: ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ AM: Δοµές Δεδοµένων Εξεταστική Ιανουαρίου 2014 Διδάσκων : Ευάγγελος Μαρκάκης 20.01.2014 ΥΠΟΓΡΑΦΗ ΕΠΟΠΤΗ: Διάρκεια εξέτασης : 2 ώρες και

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

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

Περιεχόμενα. Περιεχόμενα Περιεχόμενα 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 Εκφράσεις...

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

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δοµές Δεδοµένων

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δοµές Δεδοµένων ΟΝΟΜΑΤΕΠΩΝΥΜΟ: ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ AM: Δοµές Δεδοµένων Πτυχιακή Εξεταστική Ιούλιος 2014 Διδάσκων : Ευάγγελος Μαρκάκης 09.07.2014 ΥΠΟΓΡΑΦΗ ΕΠΟΠΤΗ: Διάρκεια εξέτασης : 2 ώρες

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

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

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

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

Δοµές Δεδοµένων. ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ Φθινοπωρινό Εξάµηνο Ευάγγελος Μαρκάκης

Δοµές Δεδοµένων. ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ Φθινοπωρινό Εξάµηνο Ευάγγελος Μαρκάκης Δοµές Δεδοµένων ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ Φθινοπωρινό Εξάµηνο 2009-2010 Ευάγγελος Μαρκάκης Τι είναι οι Δοµές Δεδοµένων? Δοµές Δεδοµένων 01-2 Τι είναι οι Δοµές Δεδοµένων? Webopedia:

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

Επανάληψη για τις Τελικές εξετάσεις

Επανάληψη για τις Τελικές εξετάσεις Επανάληψη για τις Τελικές εξετάσεις ( ιάλεξη 21) ιδάσκων: ηµήτρης Ζεϊναλιπούρ Εισαγωγή Το µάθηµα EPL032 έχει ως βασικό στόχο την επίλυση προβληµάτων πληροφορικής µε την χρήση της γλώσσας προγραµµατισµού

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

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

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

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

Λογισµικό (Software SW) Γλώσσες

Λογισµικό (Software SW) Γλώσσες Λογισµικό (Software SW) Γλώσσες Προγραµµατισµού Οι γενιές των γλωσσών προγραµµατισµού Προβλήµατα που επιλύονται σε ένα περιβάλλον στο οποίο ο άνθρωπος πρέπει να προσαρµόζεται στα χαρακτηριστικά της µηχανής

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

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

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

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

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

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

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

Δοµές Δεδοµένων. 6η Διάλεξη Αναδροµικές Εξισώσεις και Αφηρηµένοι Τύποι Δεδοµένων. Ε. Μαρκάκης

Δοµές Δεδοµένων. 6η Διάλεξη Αναδροµικές Εξισώσεις και Αφηρηµένοι Τύποι Δεδοµένων. Ε. Μαρκάκης Δοµές Δεδοµένων 6η Διάλεξη Αναδροµικές Εξισώσεις και Αφηρηµένοι Τύποι Δεδοµένων Ε. Μαρκάκης Περίληψη Χρήση αναδροµικών εξισώσεων στην ανάλυση αλγορίθµων Αφηρηµένοι τύποι δεδοµένων Συλλογές στοιχείων Στοίβα

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΕΠΛ 035: οµές εδοµένων και Αλγόριθµοι για Ηλεκτρολόγους Μηχανικούς και Μηχανικούς Υπολογιστών

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΕΠΛ 035: οµές εδοµένων και Αλγόριθµοι για Ηλεκτρολόγους Μηχανικούς και Μηχανικούς Υπολογιστών ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 035: οµές εδοµένων και Αλγόριθµοι για Ηλεκτρολόγους Μηχανικούς και Μηχανικούς Υπολογιστών Ακαδηµαϊκό έτος 2010 2011, Χειµερινό εξάµηνο Παρασκευή - 17/12/10 (08:30-11:30)

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

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

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

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

Θεωρητικό Μέρος. 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 ο Σετ Ασκήσεων Θεωρητικό Μέρος:

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

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

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

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

Μοντελοποίηση προβληµάτων

Μοντελοποίηση προβληµάτων Σχεδιασµός Αλγορίθµων Ακέραιος προγραµµατισµός Αποδοτικοί Αλγόριθµοι Μη Αποδοτικοί Αλγόριθµοι Σχεδιασµός Αλγορίθµων Ακέραιος προγραµµατισµός Αποδοτικοί Αλγόριθµοι Μη Αποδοτικοί Αλγόριθµοι Θεωρία γράφων

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

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

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

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

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

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

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

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

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

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

Αντικειμενοστρεφής Προγραμματισμός

Αντικειμενοστρεφής Προγραμματισμός Αντικειμενοστρεφής Προγραμματισμός Διδάσκουσα: Αναπλ. Καθηγήτρια Ανδριάνα Πρέντζα aprentza@unipi.gr Εργαστηριακός Συνεργάτης: Δρ. Βασιλική Κούφη vassok@unipi.gr Περιεχόμενα Java Classes Java Objects Java

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

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

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

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

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

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

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

Στοιχεία Θεωρίας Υπολογισµού (2): Πεπερασµένα Αυτόµατα, Κανονικές Εκφράσεις

Στοιχεία Θεωρίας Υπολογισµού (2): Πεπερασµένα Αυτόµατα, Κανονικές Εκφράσεις Στοιχεία Θεωρίας Υπολογισµού (2): Πεπερασµένα Αυτόµατα, Κανονικές Εκφράσεις Ορέστης Τελέλης telelis@unipi.gr Τµήµα Ψηφιακών Συστηµάτων, Πανεπιστήµιο Πειραιώς Ο. Τελέλης Πανεπιστήµιο Πειραιώς Θεωρία Υπολογισµού

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

Κλάσεις και Αντικείµενα

Κλάσεις και Αντικείµενα Κλάσεις και Αντικείµενα Γρηγόρης Τσουµάκας Τµήµα Πληροφορικής, Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης Κλάσεις και Αντικείµενα 2 Τα αντικείµενα σε µια αντικειµενοστρεφή γλώσσα προγραµµατισµού, µοντελοποιούν

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

Ποιές οι θεµελιώδεις δυνατότητες και ποιοί οι εγγενείς περιορισµοί των υπολογιστών ; Τί µπορούµε και τί δε µπορούµε να υπολογίσουµε (και γιατί);

Ποιές οι θεµελιώδεις δυνατότητες και ποιοί οι εγγενείς περιορισµοί των υπολογιστών ; Τί µπορούµε και τί δε µπορούµε να υπολογίσουµε (και γιατί); Μοντελοποίηση του Υπολογισµού Στοιχεία Θεωρίας Υπολογισµού (): Τυπικές Γλώσσες, Γραµµατικές Ορέστης Τελέλης telelis@unipi.gr Τµήµα Ψηφιακών Συστηµάτων, Πανεπιστήµιο Πειραιώς Ποιές οι θεµελιώδεις δυνατότητες

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

Στοιχεία Θεωρίας Υπολογισµού (1): Τυπικές Γλώσσες, Γραµµατικές

Στοιχεία Θεωρίας Υπολογισµού (1): Τυπικές Γλώσσες, Γραµµατικές Στοιχεία Θεωρίας Υπολογισµού (1): Τυπικές Γλώσσες, Γραµµατικές Ορέστης Τελέλης telelis@unipi.gr Τµήµα Ψηφιακών Συστηµάτων, Πανεπιστήµιο Πειραιώς Ο. Τελέλης Πανεπιστήµιο Πειραιώς Θεωρία Υπολογισµού 1 /

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

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

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

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

ΚΕΦΑΛΑΙΟ 7 ΕΙ Η, ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

ΚΕΦΑΛΑΙΟ 7 ΕΙ Η, ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΚΕΦΑΛΑΙΟ 7 ΕΙ Η, ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ 7.1. Ανάπτυξη Προγράµµατος Τι είναι το Πρόγραµµα; Το Πρόγραµµα: Είναι ένα σύνολο εντολών για την εκτέλεση ορισµένων λειτουργιών από τον υπολογιστή.

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

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

Δομές Δεδομένων (Data Structures) Δομές Δεδομένων (Data Structures) 3 ο Εξάμηνο Σπουδών Εαρινό Εξάμηνο 2010/11 Διδάσκων: Χαρμανδάρης Ευάγγελος, Τμήμα Εφαρμοσμένων Μαθηματικών, Πανεπιστήμιο Κρήτης email: vagelis@tem.uoc.gr, Ιστοσελίδα Μαθήματος:

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

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

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

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

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

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

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

2.1 Αντικειµενοστρεφής προγραµµατισµός

2.1 Αντικειµενοστρεφής προγραµµατισµός 2.1 Αντικειµενοστρεφής προγραµµατισµός Στον αντικειµενοστρεφή προγραµµατισµό (object oriented programming, OOP) ένα πρόγραµµα υπολογιστή είναι ένα σύνολο αλληλεπιδρώντων αντικειµένων. Μπορεί να ειπωθεί

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

Α. Ερωτήσεις Ανάπτυξης

Α. Ερωτήσεις Ανάπτυξης οµηµένος Προγραµµατισµός-Κεφάλαιο 7 Σελίδα 1 α ό 10 ΕΝΟΤΗΤΑ ΙΙΙ (ΠΡΟΓΡΑΜΜΑΤΑ) ΚΕΦΑΛΑΙΟ 7: Είδη, Τεχνικές και Περιβάλλοντα Προγραµµατισµού Α. Ερωτήσεις Ανάπτυξης 1. Τι ονοµάζουµε γλώσσα προγραµµατισµού;

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

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

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

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

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

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

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

Αρχές Τεχνολογίας Λογισμικού Εργαστήριο

Αρχές Τεχνολογίας Λογισμικού Εργαστήριο Αρχές Τεχνολογίας Λογισμικού Εργαστήριο Κωδικός Μαθήματος: TP323 Ώρες Εργαστηρίου: 2/εβδομάδα (Διαφάνειες Νίκου Βιδάκη) 1 JAVA Inheritance Εβδομάδα Νο. 3 2 Προηγούμενο μάθημα (1/2) Τι είναι αντικείμενο?

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

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

Δομές Δεδομένων (Data Structures) Δομές Δεδομένων (Data Structures) Γραμμικές Λίστες Βασικές Έννοιες Βασικές Έννοιες. Αναπαράσταση με τύπο και με δείκτη. Γραμμικές Λίστες. Βασικές Λειτουργίες. Δομές Δεδομένων: Βασικές Έννοιες Αντικείμενο

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

Οικονοµικό Πανεπιστήµιο Αθηνών. Τµήµα Πληροφορικής. Φθινοπωρινό Εξάµηνο 2015. Δοµές Δεδοµένων - Εργασία 2. Διδάσκων: E. Μαρκάκης

Οικονοµικό Πανεπιστήµιο Αθηνών. Τµήµα Πληροφορικής. Φθινοπωρινό Εξάµηνο 2015. Δοµές Δεδοµένων - Εργασία 2. Διδάσκων: E. Μαρκάκης Οικονοµικό Πανεπιστήµιο Αθηνών Τµήµα Πληροφορικής Φθινοπωρινό Εξάµηνο 2015 Δοµές Δεδοµένων - Εργασία 2 Διδάσκων: E. Μαρκάκης Ταξινόµηση και Ουρές Προτεραιότητας Σκοπός της 2 ης εργασίας είναι η εξοικείωση

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

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

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

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

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

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

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

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

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

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

ΗΥ 252: Αντικειµενοστρεφής Προγραµµατισµός

ΗΥ 252: Αντικειµενοστρεφής Προγραµµατισµός ΗΥ : Αντικειµενοστρεφής Προγραµµατισµός http://www.csd.uoc.gr/~hy Β. Χριστοφίδης christop@ics.forth.gr Τµήµα Επιστήµης Υπολογιστών, Πανεπιστήµιο Κρήτης Ηράκλειο Κρήτης Γενικές Πληροφορίες Ώρες ιδασκαλίας

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

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

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

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

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

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

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

Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού

Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού ( Απαντήσεις & Λύσεις Βιβλίου) 1. Σκοποί κεφαλαίου Κύκλος ανάπτυξης προγράµµατος Κατηγορίες γλωσσών προγραµµατισµού

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

Κεφάλαιο 2. Η δοµή δεδοµένων Σωρός και η Ταξινόµηση Σωρού (The Heap data structure and Heapsort) Έκδοση 1.1, 12/05/2010

Κεφάλαιο 2. Η δοµή δεδοµένων Σωρός και η Ταξινόµηση Σωρού (The Heap data structure and Heapsort) Έκδοση 1.1, 12/05/2010 Κεφάλαιο 2 Η δοµή δεδοµένων Σωρός και η Ταξινόµηση Σωρού (The Heap data structure and Heapsort) Έκδοση., 2/05/200 Χρησιµοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne. Σωρός και Ταξινόµηση

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

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

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

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

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

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

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

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

Δομές Δεδομένων και Αλγόριθμοι Δομές Δεδομένων και Αλγόριθμοι Χρήστος Γκόγκος ΤΕΙ Ηπείρου, Τμήμα Μηχανικών Πληροφορικής ΤΕ Χειμερινό Εξάμηνο 2014-2015 (Παρουσίαση 6) 1 / 20 Ρυθμοί αύξησης Γραμμικός ρυθμός αύξησης: n, 2n, Πολυωνυμικός

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

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

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

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

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

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

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

Μια TM µπορεί ένα από τα δύο: να αποφασίζει µια γλώσσα L. να αναγνωρίζει (ηµιαποφασίζει) µια γλώσσα L. 1. Η TM «εκτελεί» τον απαριθµητή, E.

Μια TM µπορεί ένα από τα δύο: να αποφασίζει µια γλώσσα L. να αναγνωρίζει (ηµιαποφασίζει) µια γλώσσα L. 1. Η TM «εκτελεί» τον απαριθµητή, E. Οι γλώσσες των Μηχανών Turing Αποφασισιµότητα / Αναγνωρισιµότητα Μια TM µπορεί ένα από τα δύο: να αποφασίζει µια γλώσσα L Αποδέχεται όταν (η είσοδος στην TM) w L. Ορέστης Τελέλης telelis@unipi.gr Τµήµα

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

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

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

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

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

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

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

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

Πανεπιστηµιο Πειραιως Σχολη Τεχνολογιων Πληροφορικης και Επικοινωνιων Τµηµα Ψηφιακων Συστηµατων οµές εδοµένων η Εργασία Πανεπιστηµιο Πειραιως Σχολη Τεχνολογιων Πληροφορικης και Επικοινωνιων Τµηµα Ψηφιακων Συστηµατων οµές εδοµένων 2015-2016 1η Εργασία Χρήστος ουλκερίδης Ορέστης Τελέλης 1 Περιγραφή Στην εργασία καλείστε να

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

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

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

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

Αριθµητική Ανάλυση 1 εκεµβρίου / 43

Αριθµητική Ανάλυση 1 εκεµβρίου / 43 Αριθµητική Ανάλυση 1 εκεµβρίου 2014 Αριθµητική Ανάλυση 1 εκεµβρίου 2014 1 / 43 Κεφ.5. Αριθµητικός Υπολογισµός Ιδιοτιµών και Ιδιοδιανυσµάτων ίνεται ένας πίνακας A C n n και Ϲητούνται να προσδιορισθούν οι

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

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

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

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

Wrapper Classes, Abstract Classes and Interfaces

Wrapper Classes, Abstract Classes and Interfaces Wrapper Classes, Abstract Classes and Interfaces Εβδοµάδα 3: Κλάσεις συσκευαστές, αφηρηµένες κλάσεις και διαπροσωπείες Αντικείµενα και µη-αντικείµενα Η Java παρέχει τύπους αντικειµένων και απλούς τύπους

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

ΗΥ 252: Αντικειµενοστρεφής Προγραµµατισµός

ΗΥ 252: Αντικειµενοστρεφής Προγραµµατισµός ΗΥ : Αντικειµενοστρεφής Προγραµµατισµός http://www.csd.uoc.gr/~hy Β. Χριστοφίδης christop@ics.forth.gr Τµήµα Επιστήµης Υπολογιστών, Πανεπιστήµιο Κρήτης Ηράκλειο Κρήτης Γενικές Πληροφορίες Ώρες ιδασκαλίας

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

Week. 6: Java Collections

Week. 6: Java Collections Week 6: Java Collections Συλλογές δεδοµένων [collections] Εβδοµάδα 6: Συλλογές δεδοµένων στην Java Οι συλλογές [collections] (αναφέρονται και ως «υποδοχείς δεδοµένων» [containers]) είναι κλάσεις που χρησιµοποιούνται

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Γ' ΛΥΚΕΙΟΥ ΤΕΧΝΟΛΟΓΙΚΗ ΚΑΤΕΥΘΥΝΣΗ ΚΥΚΛΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΥΠΗΡΕΣΙΩΝ 2005 ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Γ' ΛΥΚΕΙΟΥ ΤΕΧΝΟΛΟΓΙΚΗ ΚΑΤΕΥΘΥΝΣΗ ΚΥΚΛΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΥΠΗΡΕΣΙΩΝ 2005 ΕΚΦΩΝΗΣΕΙΣ ΘΕΜΑ 1ο Α. 1. Να αναφέρετε ονοµαστικά τα κριτήρια που πρέπει απαραίτητα

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

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

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

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

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

Αλγόριθµοι και Πολυπλοκότητα Αλγόριθµοι και Πολυπλοκότητα Ν. Μ. Μισυρλής Τµήµα Πληροφορικής και Τηλεπικοινωνιών, Πανεπιστήµιο Αθηνών Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 15 Ιουνίου 2009 1 / 26 Εισαγωγή Η ϑεωρία

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

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

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

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

Εισαγωγή σε αντικειμενοστραφή concepts. Και λίγη C#

Εισαγωγή σε αντικειμενοστραφή concepts. Και λίγη C# Εισαγωγή σε αντικειμενοστραφή concepts Και λίγη C# Κλάσεις Κλάση: τύπος δεδομένων που αποτελεί συλλογή πεδίων, ορισμών συναρτήσεων/μεθόδων και ορισμών άλλων τύπων δεδομένων. Αντίστοιχο σκεπτικό με struct

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

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

Δομές Δεδομένων και Αλγόριθμοι Δομές Δεδομένων και Αλγόριθμοι Χρήστος Γκόγκος ΤΕΙ Ηπείρου, Τμήμα Μηχανικών Πληροφορικής ΤΕ Χειμερινό Εξάμηνο 2014-2015 (Παρουσίαση 5) 1 / 17 Απόδοση προγραμμάτων Συχνά χρειάζεται να εκτιμηθεί η απόδοση

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