1.1) Ιεραρχία Συναρτήσεων
1.2) Αναδρομικές Σχέσεις (Θεώρημα Κυριαρχίας, Μέθοδος Επανάληψης)
2) Άπληστος Αλγόριθμος (Αντιπαράδειγμα ε μη ορθό αλγόριθμο υπολογισμού συντομότερου μονοπατιού)
3.1) 0*1*11*: ΚΕ σε ΜΠΑε σε ΜΠΑ σε ΝΠΑ και Κανονική Γραμματική
3.2) Διακριση Κανονικών και μη Κανονικών Γλωσσών
4) Διάκριση Γλωσσών Χωρίς Συμφραζόμενα και Γλωσσών Όχι Χωρίς Συμφραζόμενα (Γραμματική Χωρίς Συμφραζόμενα, Αυτόματο Στοίβας) και (Λήμμα Άντλησης για Γλώσσες Χωρίς Συμφραζόμενα.
5.1) Μηχανή Turing για συμπλήρωμα ισότητας
5.2) Αναγωγές μη Επιλυσιμότητας
6) NP-πληρότητα (το πρόβλημα της κομβικής επικάλυψης και το πρόβλημα του ανεξαρτήτου συνόλου)
1) Εισαγωγή
1.1) Είδη Προβλημάτων
1.2) Μοντέλα Υπολογισμού
2) Το πρόβλημα της ικανοποιησιμότητας - SAT
2.1) Διατυπωση του προβλήματος
2.2) To SAT λύνεται σε ντετερμιιστικό εκθετικό χρόνο.
2.3) To SAT λύνεται σε ντετερμινιστικό πολυωνυμικό χρόνο?
2.4) Το SAT λύνεται σε μη ντετερμινιστικό πολυωνυμικό χρόνο.
2.5) Σύνοψη για το πρόβλημα SAT
3) Θεωρία Πολυπλοκότητας
3.1) Η κλάση P
3.2) Η κλάση NP
3.3) Η κλάση EXP
3.4) P ⊆푵NP푷⊆퐄EXP퐗퐏
3.5) NP-πληρότητα
4) NP-πληρότητα
4.1) Αποδείξεις NP-πληρότητας
4.2) Ιδιότητες NP-Complete προβλημάτων
4.3) Το ανοικτό πρόβλημα P=NP
4.4) Η κλάση NP-Complete
4.5) Ιεραρχία κλάσεων αν P ≠ NP푷
4.6) Ιεραρχία κλάσεων αν P = NP푷
Ασκήσεις
1) Εισαγώγή
1.1) Σχήμα Απόδειξης Αναγωγής
1.2) Αναγωγές της Προτασιακής Λογικής
2) Το πρόβλημα INDEPENDENT-SET είναι NP-πλήρες
2.1) INDEPENDENT-SET ανήκει στο NP
2.2) 3SAT ανάγεται στο INDEPENDENT-SET
3) Το πρόβλημα CLIQUE είναι NP-πλήρες
3.1) CLIQUE ανήκει στο NP
3.2) INDEPENDENT-SET ανάγεται στο CLIQUE
4) Το πρόβλημα VERTEX-COVER είναι NP-πλήρες
4.1) VERTEX-COVER ανήκει στο NP
4.2) INDEPENDENT-SET ανάγεται στο VERTEX-COVER
5) Το πρόβλημα SUBGRAPH-ISOMORPHISM είναι NP-πλήρες
5.1) SUBGRAPH-ISOMORPHISM ανήκει στο NP
5.2) CLIQUE ανάγεται στο SUBGRAPH-ISOMORPHISM
Ασκήσεις
1) To (n/2)-CLIQUE είναι NP-πλήρες
2) Το KITE είναι NP-πλήρες
3) Το k-DENSEST-SUBGRAPH είναι NP-πλήρες
4) Το k-LIGHTEST-SUBGRAPH είναι NP-πλήρες
1) Η αναδρομή Τ(n)=aT(n-b)+c
1.1) Επίλυση με την Μέθοδο της Επανάληψης
2) Η αναδρομή Τ(n)=T(n-1)+f(n)
2.1) Επίλυση με την Μέθοδο της Επανάληψης
3) Η αναδρομή T(n)=T(n/a)+T(n/b)+f(n)
3.1) Επίλυση με τη Μέθοδο των Φραγμάτων
3.2) Επίλυση με το Δένδρο Αναδρομής
3.3) Επίλυση με τη Δραστηριότητα 3.6
Ασκήσεις
1) ΑΣΥΜΠΤΩΤΙΚΟΙ ΣΥΜΒΟΛΙΣΜΟΙ
1.1) Ο ασυμπτωτικός συμβολισμός ο
1.2) Ο ασυμπτωτικός συμβολισμός Ο
1.3) Ο ασυμπτωτικός συμβολισμός Θ
1.4) Ο ασυμπτωτικός συμβολισμός Ω
1.5) Ο ασυμπτωτικός συμβολισμός ω
2) ΧΡΗΣΗ ΟΡΙΩΝ ΓΙΑ ΤΗΝ ΑΠΟΔΕΙΞΗ ΑΣΥΜΠΤΩΤΙΚΩΝ ΣΥΜΒΟΛΙΣΜΩΝ
3) ΛΗΜΜΑΤΑ ΣΤΟΥΣ ΑΣΥΜΠΤΩΤΙΚΟΥΣ ΣΥΜΒΟΛΙΣΜΟΥΣ
Ασκήσεις
1) Η αποδεικτική διαδικασία της αναγωγής
1.1) Σκεπτικό: Η γλώσσα Halting
1.2) Το Θεώρημα Αναγωγής
1.3) Σχήμα Απόδειξης Αναγωγής
2) Παραδείγματα Αναγωγών
2.1) Ο πιο συχνά χρησιμοποιούμενος μετασχημαισμός
2.2) Τερματίζει ένα πρόγραμμα με οποιαδήποτε είσοδο;
2.3) Τερματίζει ένα πρόγραμμα με είσοδο την κενή συμβολοσειρά;
2.4) Τερματίζει ένα πρόγραμμα με είσοδο έστω μία συμβολοσειρά;
2.5) Είναι δύο προγράμματα ισοδύναμα;
2.6) Το πρόγραμμα δεν τερματίζει για καμία είσοδο
3) Άλλες Μη Επιλύσιμες Γλώσσες
3.1) Αναγνώριση συνόλου γλώσσας
3.2) Ασκ.Αυτ.2.2 και Δραστ.2.2
3.3) Μη Επιλύσιμες Γλώσσες για Γλώσσες Χωρίς Συμφραζόμενα
1) Εισαγώγή
1.1) Σχήμα Απόδειξης Αναγωγής
1.2) Αναγωγές της Προτασιακής Λογικής
2) Το πρόβλημα HAMILTON-PATH είναι NP-πλήρες
2.1) HAMILTON-PATH ανήκει στο NP
2.2) 3SAT ανάγεται στο HAMILTON-PATH
3) Το πρόβλημα HAMILTON-CYCLE είναι NP-πλήρες
3.1) HAMILTON-CYCLE ανήκει στο NP
3.2) HAMILTON-PATH ανάγεται στο HAMILTON-CYCLE
4) Το πρόβλημα 3-COLORING είναι NP-πλήρες
4.1) 3-COLORING ανήκει στο NP
4.2) 3SAT ανάγεται στο 3-COLORING
Ασκήσεις
1) To 7-COLORING είναι NP-πλήρες
2) Το TSP είναι NP-πλήρες
1) Απληστοι Αλγόριθμοι
1.1) Συντομότερο Μονοπάτι σε Γράφο
1.1.1) Ο αλγόριθμος του Dijkstra
1.2) Ελάχιστο Συνδετικό Δένδρο
1.2.1) Ο αλγόριθμος του Prim
1.2.2) Ο αλγόριθμος του Kruskal
1.3) Ελαχιστοποίηση Νομισμάτων με Ρέστα
Εφαρμογές
1) Επιστροφή χρηματικού ποσού για ρέστα
2) Άπληστος Αλγόριθμος για Χρωματισμό Γραφήματος
1.1) Ιεραρχία Συναρτήσεων
1.2) Αναδρομικές Σχέσεις (Θεώρημα Κυριαρχίας, Μέθοδος Επανάληψης)
2) Άπληστος Αλγόριθμος (Αντιπαράδειγμα ε μη ορθό αλγόριθμο υπολογισμού συντομότερου μονοπατιού)
3.1) 0*1*11*: ΚΕ σε ΜΠΑε σε ΜΠΑ σε ΝΠΑ και Κανονική Γραμματική
3.2) Διακριση Κανονικών και μη Κανονικών Γλωσσών
4) Διάκριση Γλωσσών Χωρίς Συμφραζόμενα και Γλωσσών Όχι Χωρίς Συμφραζόμενα (Γραμματική Χωρίς Συμφραζόμενα, Αυτόματο Στοίβας) και (Λήμμα Άντλησης για Γλώσσες Χωρίς Συμφραζόμενα.
5.1) Μηχανή Turing για συμπλήρωμα ισότητας
5.2) Αναγωγές μη Επιλυσιμότητας
6) NP-πληρότητα (το πρόβλημα της κομβικής επικάλυψης και το πρόβλημα του ανεξαρτήτου συνόλου)
1) Εισαγωγή
1.1) Είδη Προβλημάτων
1.2) Μοντέλα Υπολογισμού
2) Το πρόβλημα της ικανοποιησιμότητας - SAT
2.1) Διατυπωση του προβλήματος
2.2) To SAT λύνεται σε ντετερμιιστικό εκθετικό χρόνο.
2.3) To SAT λύνεται σε ντετερμινιστικό πολυωνυμικό χρόνο?
2.4) Το SAT λύνεται σε μη ντετερμινιστικό πολυωνυμικό χρόνο.
2.5) Σύνοψη για το πρόβλημα SAT
3) Θεωρία Πολυπλοκότητας
3.1) Η κλάση P
3.2) Η κλάση NP
3.3) Η κλάση EXP
3.4) P ⊆푵NP푷⊆퐄EXP퐗퐏
3.5) NP-πληρότητα
4) NP-πληρότητα
4.1) Αποδείξεις NP-πληρότητας
4.2) Ιδιότητες NP-Complete προβλημάτων
4.3) Το ανοικτό πρόβλημα P=NP
4.4) Η κλάση NP-Complete
4.5) Ιεραρχία κλάσεων αν P ≠ NP푷
4.6) Ιεραρχία κλάσεων αν P = NP푷
Ασκήσεις
1) Εισαγώγή
1.1) Σχήμα Απόδειξης Αναγωγής
1.2) Αναγωγές της Προτασιακής Λογικής
2) Το πρόβλημα INDEPENDENT-SET είναι NP-πλήρες
2.1) INDEPENDENT-SET ανήκει στο NP
2.2) 3SAT ανάγεται στο INDEPENDENT-SET
3) Το πρόβλημα CLIQUE είναι NP-πλήρες
3.1) CLIQUE ανήκει στο NP
3.2) INDEPENDENT-SET ανάγεται στο CLIQUE
4) Το πρόβλημα VERTEX-COVER είναι NP-πλήρες
4.1) VERTEX-COVER ανήκει στο NP
4.2) INDEPENDENT-SET ανάγεται στο VERTEX-COVER
5) Το πρόβλημα SUBGRAPH-ISOMORPHISM είναι NP-πλήρες
5.1) SUBGRAPH-ISOMORPHISM ανήκει στο NP
5.2) CLIQUE ανάγεται στο SUBGRAPH-ISOMORPHISM
Ασκήσεις
1) To (n/2)-CLIQUE είναι NP-πλήρες
2) Το KITE είναι NP-πλήρες
3) Το k-DENSEST-SUBGRAPH είναι NP-πλήρες
4) Το k-LIGHTEST-SUBGRAPH είναι NP-πλήρες
1) Η αναδρομή Τ(n)=aT(n-b)+c
1.1) Επίλυση με την Μέθοδο της Επανάληψης
2) Η αναδρομή Τ(n)=T(n-1)+f(n)
2.1) Επίλυση με την Μέθοδο της Επανάληψης
3) Η αναδρομή T(n)=T(n/a)+T(n/b)+f(n)
3.1) Επίλυση με τη Μέθοδο των Φραγμάτων
3.2) Επίλυση με το Δένδρο Αναδρομής
3.3) Επίλυση με τη Δραστηριότητα 3.6
Ασκήσεις
1) ΑΣΥΜΠΤΩΤΙΚΟΙ ΣΥΜΒΟΛΙΣΜΟΙ
1.1) Ο ασυμπτωτικός συμβολισμός ο
1.2) Ο ασυμπτωτικός συμβολισμός Ο
1.3) Ο ασυμπτωτικός συμβολισμός Θ
1.4) Ο ασυμπτωτικός συμβολισμός Ω
1.5) Ο ασυμπτωτικός συμβολισμός ω
2) ΧΡΗΣΗ ΟΡΙΩΝ ΓΙΑ ΤΗΝ ΑΠΟΔΕΙΞΗ ΑΣΥΜΠΤΩΤΙΚΩΝ ΣΥΜΒΟΛΙΣΜΩΝ
3) ΛΗΜΜΑΤΑ ΣΤΟΥΣ ΑΣΥΜΠΤΩΤΙΚΟΥΣ ΣΥΜΒΟΛΙΣΜΟΥΣ
Ασκήσεις
1) Η αποδεικτική διαδικασία της αναγωγής
1.1) Σκεπτικό: Η γλώσσα Halting
1.2) Το Θεώρημα Αναγωγής
1.3) Σχήμα Απόδειξης Αναγωγής
2) Παραδείγματα Αναγωγών
2.1) Ο πιο συχνά χρησιμοποιούμενος μετασχημαισμός
2.2) Τερματίζει ένα πρόγραμμα με οποιαδήποτε είσοδο;
2.3) Τερματίζει ένα πρόγραμμα με είσοδο την κενή συμβολοσειρά;
2.4) Τερματίζει ένα πρόγραμμα με είσοδο έστω μία συμβολοσειρά;
2.5) Είναι δύο προγράμματα ισοδύναμα;
2.6) Το πρόγραμμα δεν τερματίζει για καμία είσοδο
3) Άλλες Μη Επιλύσιμες Γλώσσες
3.1) Αναγνώριση συνόλου γλώσσας
3.2) Ασκ.Αυτ.2.2 και Δραστ.2.2
3.3) Μη Επιλύσιμες Γλώσσες για Γλώσσες Χωρίς Συμφραζόμενα
1) Εισαγώγή
1.1) Σχήμα Απόδειξης Αναγωγής
1.2) Αναγωγές της Προτασιακής Λογικής
2) Το πρόβλημα HAMILTON-PATH είναι NP-πλήρες
2.1) HAMILTON-PATH ανήκει στο NP
2.2) 3SAT ανάγεται στο HAMILTON-PATH
3) Το πρόβλημα HAMILTON-CYCLE είναι NP-πλήρες
3.1) HAMILTON-CYCLE ανήκει στο NP
3.2) HAMILTON-PATH ανάγεται στο HAMILTON-CYCLE
4) Το πρόβλημα 3-COLORING είναι NP-πλήρες
4.1) 3-COLORING ανήκει στο NP
4.2) 3SAT ανάγεται στο 3-COLORING
Ασκήσεις
1) To 7-COLORING είναι NP-πλήρες
2) Το TSP είναι NP-πλήρες
1) Απληστοι Αλγόριθμοι
1.1) Συντομότερο Μονοπάτι σε Γράφο
1.1.1) Ο αλγόριθμος του Dijkstra
1.2) Ελάχιστο Συνδετικό Δένδρο
1.2.1) Ο αλγόριθμος του Prim
1.2.2) Ο αλγόριθμος του Kruskal
1.3) Ελαχιστοποίηση Νομισμάτων με Ρέστα
Εφαρμογές
1) Επιστροφή χρηματικού ποσού για ρέστα
2) Άπληστος Αλγόριθμος για Χρωματισμό Γραφήματος
The document discusses algorithms and their analysis. It introduces common algorithms like selection sort and nested for loops. It also covers big O notation for analyzing algorithms and describes how selection sort runs in O(n^2) time. Procedures and pseudocode are provided as examples.
1.1) Ιεραρχία Συναρτήσεων
1.2) Αναδρομικές Σχέσεις (Θεώρημα Κυριαρχίας, Μέθοδος Επανάληψης)
2) Δυναμικός Προγραμματισμός (Ψευδοκώδικας για αναδρομική σχέση δυναμικού προγραμματισμού)
3.1) 1*10*1*: ΚΕ σε ΜΠΑε σε ΜΠΑ σε ΝΠΑ σε Κανονική Γραμματική
3.2) Διάκριση Κανονικών και μη Κανονικών Γλωσσών
4.1) Ανισότητα 2 πραγμάτων: Γραμματική Χωρίς Συμφραζόμενα και Αυτόματο Στοίβας
4.2) Ανισότητα 3 πραγμάτων (όχι ΓΧΣ με 2ο λήμμα άντλησης)
5.1) Ισότητα 2 πραγμάτων (Μηχανή Turing)
5.2) Αναγωγή μη επιλυσιμότητας
6) Το At Least 7 SAT είναι NP-complete
1.1) Ιεραρχία Συναρτήσεων
1.2) Αναδρομικές Σχέσεις (Θεώρημα Κυριαρχίας, Μέθοδος Επανάληψης)
3.1) Κανονική Έκφραση σε ΜΠΑ
3.2) ΚΕ[10(0+1)* +01(0+1)* ] σε ΜΠΑε σε ΜΠΑ σε ΝΠΑ
3.3) Γλώσσα ww: Διάκριση Κανονικών Γλωσσών και Γλωσσών Χωρίς Συμφραζόμενα
4.1) Γραμματικές Χωρίς Συμφραζόμενα
4.2) Αναλογία (Λήμμα Αντλήσης, Γραμματική Χωρίς Συμφραζόμενα, Μη Ντετερμινιστικό Αυτόματο Στοίβας, Ντετερμινιστικό Αυτόματο Στοιβας)
5.1) Μηχανή Turing για αναλογία.
1.1) Ιεραρχία Συναρτήσεων
1.2) Αναδρομικές Σχέσεις (Θεώρημα Κυριαρχίας, Μέθοδος Επανάληψης)
3.1) Κανονική Έκφραση σε ΜΠΑ
3.2) (10*)*: Κανονική Έκφρασε σε ΜΠΑ σε ΝΠΑ
3.3) Αναλογία: Διάκριση Κανονικών Γλωσσών και Γλωσσών Χωρίς Συμφραζόμενα
4.1) Γραμματικές Χωρίς Συμφραζόμενα
4.2) Συμμετρία στο Κέντρο (Λήμμα Αντλήσης, Γραμματική Χωρίς Συμφραζόμενα, Μη Ντετερμινιστικό Αυτόματο Στοίβας, Ντετερμινιστικό Αυτόματο Στοιβας)
5.1) Μηχανή Turing για συμμετρία στο κέντρο.
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ (4δ)Dimitris Psounis
ΠΕΡΙΕΧΟΜΕΝΑ ΜΑΘΗΜΑΤΟΣ
Α. Θεωρία
1.Διαχείριση Μνήμης
1.1.Στατική Δέσμευση Μνήμης
1.2.Στατική Δέσμευση Μνήμης για Συνήθεις Μεταβλητές
1.3.Στατική Δέσμευση Μνήμης για Αντικείμενα
2.Δυναμική Δέσμευση Μνήμης
2.1.Δείκτες (Υπενθύμιση από C)
2.2.Οι τελεστές new και delete
2.3.Δυναμική Δέσμευση για Συνήθεις Μεταβλητές
2.4.Δυναμική Δέσμευση για Αντικείμενα
2.5.Δυναμική Δέσμευση και Κατασκευαστές
3.Κλάσεις που περιέχουν δείκτες
3.1.Παράδειγμα κλάσης που περιέχει δείκτες
3.2.…και ένα πρόβλημα (χωρίς λύση για την ώρα)
4..Δυναμική Δέσμευση Μνήμης για Πίνακες
4.1.Μονοδιάστατοι πίνακες
4.2.Παράδειγμα δέσμευσης μνήμης για μονοδιάστατους πίνακες
4.3.Διδιάστατοι πίνακες
4.4.Παράδειγμα δέσμευσης μνήμης για διδιάστατους πίνακες
B. Ασκήσεις
ΠΕΡΙΕΧΟΜΕΝΑ ΜΑΘΗΜΑΤΟΣ
Α. Θεωρία
1.Διαχείριση Μνήμης
1.1.Στατική Δέσμευση Μνήμης
1.2.Στατική Δέσμευση Μνήμης για Συνήθεις Μεταβλητές
1.3.Στατική Δέσμευση Μνήμης για Αντικείμενα
2.Δυναμική Δέσμευση Μνήμης
2.1.Δείκτες (Υπενθύμιση από C)
2.2.Οι τελεστές new και delete
2.3.Δυναμική Δέσμευση για Συνήθεις Μεταβλητές
2.4.Δυναμική Δέσμευση για Αντικείμενα
2.5.Δυναμική Δέσμευση και Κατασκευαστές
3.Κλάσεις που περιέχουν δείκτες
3.1.Παράδειγμα κλάσης που περιέχει δείκτες
3.2.…και ένα πρόβλημα (χωρίς λύση για την ώρα)
4..Δυναμική Δέσμευση Μνήμης για Πίνακες
4.1.Μονοδιάστατοι πίνακες
4.2.Παράδειγμα δέσμευσης μνήμης για μονοδιάστατους πίνακες
4.3.Διδιάστατοι πίνακες
4.4.Παράδειγμα δέσμευσης μνήμης για διδιάστατους πίνακες
B. Ασκήσεις
Α. Θεωρία
1. Κλάσεις
1.1 Γενικά
1.2 Ορισμός Κλάσης
1.3 Δημόσια (public) στοιχεία της κλάσης
1.4 Ιδιωτικά (private) στοιχεία της κλάσης
1.5 Παράδειγμα (προδιαγραφές)
2 Περισσότερα για τις κλάσεις
2.1 Ορισμός Συναρτήσεων έξω από την Κλάση
2.2 Παρουσίαση Ιδιωτικών – Δημόσιων Μέλων μιας κλάσης
2.3 Χωρισμός σε Αρχεία
3. Ειδικές Μεθόδοι Κλάσεων
3.1 Γενικά
3.2 Κατασκευαστής (constructor)
3.3 Καταστροφέας (destructor)
3.4 Ελεγκτές Πρόσβασης (accessors)
B. Ασκήσεις
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ (4 διαφ)Dimitris Psounis
Α. Θεωρία
1. Κλάσεις
1.1 Γενικά
1.2 Ορισμός Κλάσης
1.3 Δημόσια (public) στοιχεία της κλάσης
1.4 Ιδιωτικά (private) στοιχεία της κλάσης
1.5 Παράδειγμα (προδιαγραφές)
2 Περισσότερα για τις κλάσεις
2.1 Ορισμός Συναρτήσεων έξω από την Κλάση
2.2 Παρουσίαση Ιδιωτικών – Δημόσιων Μέλων μιας κλάσης
2.3 Χωρισμός σε Αρχεία
3. Ειδικές Μεθόδοι Κλάσεων
3.1 Γενικά
3.2 Κατασκευαστής (constructor)
3.3 Καταστροφέας (destructor)
3.4 Ελεγκτές Πρόσβασης (accessors)
B. Ασκήσεις
ΠΕΡΙΕΧΟΜΕΝΑ ΜΑΘΗΜΑΤΟΣ
Α. Θεωρία
1. Η Γλώσσα C++
1.1. Γενικά
1.2. Ιστορία – Εκδόσεις
1.3. Η αναγκαιότητα της C
1.4. Μεταγλωττιστές
2. Hello World!
2.1. Πηγαίος Κώδικας
2.2. Σχόλια
2.3. Βιβλιοθήκη iostream
2.4. main, block κώδικα, return
2.5 Είσοδος/Έξοδος
2.5.1. Έξοδος με την cout
2.5.2. Οδηγία using
2.5.3. Περισσότερα για την cout
2.5.4. Είσοδος με την cin
3. Στοιχεία της C
3.1. Μεταβλητές
3.2. Σταθερές
3.3. Τελεστές και η Δομή Ελέγχου
3.4. Δομές Επανάληψης
3.5. Συναρτήσεις
3.5.1. Πολυμορφισμός Συναρτήσεων
3.6. Πίνακες
3.7. Συμβολοσειρές
3.8. Δείκτες
B.Ασκήσεις
Εφαρμογή 1
Εφαρμογή 2
Εφαρμογή 3
C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C (4sl/p)Dimitris Psounis
ΠΕΡΙΕΧΟΜΕΝΑ ΜΑΘΗΜΑΤΟΣ
Α. Θεωρία
1. Η Γλώσσα C++
1.1. Γενικά
1.2. Ιστορία – Εκδόσεις
1.3. Η αναγκαιότητα της C
1.4. Μεταγλωττιστές
2. Hello World!
2.1. Πηγαίος Κώδικας
2.2. Σχόλια
2.3. Βιβλιοθήκη iostream
2.4. main, block κώδικα, return
2.5 Είσοδος/Έξοδος
2.5.1. Έξοδος με την cout
2.5.2. Οδηγία using
2.5.3. Περισσότερα για την cout
2.5.4. Είσοδος με την cin
3. Στοιχεία της C
3.1. Μεταβλητές
3.2. Σταθερές
3.3. Τελεστές και η Δομή Ελέγχου
3.4. Δομές Επανάληψης
3.5. Συναρτήσεις
3.5.1. Πολυμορφισμός Συναρτήσεων
3.6. Πίνακες
3.7. Συμβολοσειρές
3.8. Δείκτες
B.Ασκήσεις
Εφαρμογή 1
Εφαρμογή 2
Εφαρμογή 3
1. ∆ηµήτρης Ψούνης – ΠΛΗ30, Επανάληψη 1 1
ΠΛΗ30 – ΕΠΑΝΑΛΗΨΗ 1
Ιεραρχία Συναρτήσεων
Ο∆ΗΓΙΕΣ ΓΙΑ ΤΗΝ ΕΠΑΝΑΛΗΨΗ
Επαναλάβετε τα µαθήµατα:
• Ανάλυση Αλγορίθµων – Μάθηµα 1: Ανάλυση ∆ιαδικαστικών Αλγορίθµων
• Ανάλυση Αλγορίθµων – Μάθηµα 2: Ιεραρχία Συναρτήσεων Πολυπλοκότητας
• Ανάλυση Αλγορίθµων – Μάθηµα 3: Ασυµπτωτικοί Συµβολισµοί
• Ανάλυση Αλγορίθµων – Μάθηµα 4: Η αναδροµή T(n)=aT(n/b)+f(n) – Μόνο το Master Theorem.
Ιδιαίτερα προσπαθήστε να κάνετε καλή επανάληψη στο µάθηµα 2 και να επαναλάβετε όσο πιο πολλές
ασκήσεις µπορείτε από τα τεστ µε τις ασκήσεις ιεραρχίας. Πιάνει µια µονάδα που είναι υποχρεωτικό να
είναι ολόσωστη! Επίσης το Θεώρηµα Κυριαρχίας πιάνει περίπου 0,5 που είναι επίσης υποχρεωτικό να
είναι 100% σωστή!!
Ο∆ΗΓΙΕΣ ΓΙΑ ΤΟΝ ΧΡΟΝΟ ΕΠΙΛΥΣΗΣ ΑΣΚΗΣΕ Ν:
Έπειτα προχωρήστε στην επίλυση των ασκήσεων. Οι ασκήσεις ιεραρχίας πρέπει να βγαίνουν
ολόσωστα σε περίπου 25’-30’ η κάθε µία. Όλες οι ασκήσεις πρέπει να λυθούν εντός του
προτεινόµενου χρόνου. Έπειτα συµβουλευτείτε τις αντίστοιχες ηχογραφήσεις για να δείτε
ολοκλήρωµένα τις λύσεις των ασκήσεων.
Συνιστώµενοι Χρόνοι για την επανάληψη:
Χρόνος Επανάληψης: 2.00’
Χρόνος Απάντησης Ασκήσεων: 3.00’
Ηχογραφήσεις Ασκήσεων: 2.00’
2. ∆ηµήτρης Ψούνης – ΠΛΗ30, Επανάληψη 1 2
Ασκήσεις
Άσκηση 1
Ιεραρχήστε τις παρακάτω συναρτήσεις σε αύξουσα σειρά ασυµπτωτικής πολυπλοκότητας καθώς το n
τείνει στο άπειρο:
( )
( )
n
n
n
n
nf
nnf
nf
nnf
nnf
log
5
4
log
3
5/7
2
log
1
2)(
log)(
3)(
)(
)(
=
=
=
=
=
Άσκηση 2
Ιεραρχήστε τις παρακάτω συναρτήσεις σε αύξουσα σειρά ασυµπτωτικής πολυπλοκότητας καθώς το n
τείνει στο άπειρο:
( )
( )
( )
n
nn
n
n
n
nf
nnf
nnf
nf
nnf
log
5
lg
4
3
2
log
1
4)(
log)(
)(
3)(
lg)(
=
=
=
=
=
Στις παραπάνω συναρτήσεις, ο συµβολισµός log συµβολίζει λογάριθµο µε βάση 2 και ο συµβολισµός
lg συµβολίζει λογάριθµο µε βάση 10.
Άσκηση 3
Να διατάξετε σε αύξουσα σειρά τις ακόλουθες συναρτήσεις καθώς το n τείνει στο άπειρο:
n
n
n
n
nf
nnf
enf
nf
nf
log
5
01.3
4
ln
3
2
1
7)(
)(
)(
2)(
2)(
2
=
=
=
=
=
Στις παραπάνω συναρτήσεις, ο συµβολισµός ln συµβολίζει λογάριθµο µε βάση e
3. ∆ηµήτρης Ψούνης – ΠΛΗ30, Επανάληψη 1 3
Άσκηση 4
Να διατάξετε σε αύξουσα σειρά τις ακόλουθες συναρτήσεις καθώς το n τείνει στο άπειρο:
n
n
nnf
nnnf
nnnf
nnf
nnf
n
n
nn
nn
n
2log
5
11
4
2)log(log3
3
log
2
14log
1
2
2
2
2)(
3)(
log2)(
3)(
log2)(
+=
+=
+⋅=
+=
+=
Άσκηση 5
Να λύσετε τις ακόλουθες αναδροµικές σχέσεις:
n
n
TnT
n
n
TnT
nn
TnT
100
5
4)(.3
2
2
8)(.2
36
2)(.1
2
+
=
+
=
+
=
Άσκηση 6
Υποθέτουµε ότι έχουµε να επιλέξουµε για ένα πρόβληµα Π από τους εξής τρεις αλγόριθµους:
Ο αλγόριθµος Α λύνει ένα στιγµιότυπο µεγέθους n επιλύοντας αναδροµικά δύο υποπροβλήµατα
µεγέθους 2n/3 και συνδυάζοντας τις λύσεις σε γραµµικό χρόνο.
Ο αλγόριθµος Β λύνει ένα στιγµιότυπο µεγέθους n επιλύοντας αναδροµικά δύο υποπροβλήµατα
µεγέθους n/3 και συνδυάζοντας τις λύσεις σε χρόνο (n2
)
Ο αλγόριθµος Γ λύνει ένα στιγµιότυπο µεγέθους n επιλύοντας αναδροµικά εννιά υποπροβλήµατα
µεγέθους n/9 και συνδυάζοντας τις λύσεις σε χρόνο 2n
Ποιοι είναι οι ασυµπτωτικοί χρόνοι εκτέλεσης για κάθε ένα από τους τρεις αλγόριθµους και ποιον θα
επιλέγατε µε βάση την ασυµπτωτική του πολυπλοκότητα.
Άσκηση 7
Να εξετάσετε αν ισχύουν τα ακόλουθα:
)(logloglog.4
)(5.3
)2(3.2
)4(3.1
2
nnn
nnn
nn
nn
Ο=+
Ω=++
Ω=
Θ=