Πανεπιστήμιο Ιωαννίνων Τμήμα Πληροφορικής Δομές Δεδομένων [ΠΛΥ302] Χειμερινό Εξάμηνο 2012

Σχετικά έγγραφα
Πανεπιστήμιο Ιωαννίνων Τμήμα Μηχανικών Η/Υ και Πληροφορικής Δομές Δεδομένων [ΠΛΥ302] Χειμερινό Εξάμηνο 2013

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

Κεφα λαιο 3 Στοιχειώδεις Δομές Δεδομένων

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

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

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

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

d k 10 k + d k 1 10 k d d = k i=0 d i 10 i.

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

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

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

Ενδεικτικές Λύσεις 1ου Σετ Ασκήσεων

Τίτλος Μαθήματος: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΘΕΩΡΗΤΙΚΗ ΑΣΚΗΣΗ 1 ΛΥΣΕΙΣ Ανάλυση Πολυπλοκότητας

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΘΕΩΡΗΤΙΚΗ ΑΣΚΗΣΗ 1 ΛΥΣΕΙΣ Ανάλυση Πολυπλοκότητας

Ασκήσεις (2) Άσκηση 1

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

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

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

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

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά

Κεφάλαιο 11 Ένωση Ξένων Συνόλων

Διαίρει-και-Βασίλευε. Διαίρει-και-Βασίλευε. MergeSort. MergeSort. Πρόβλημα Ταξινόμησης: Είσοδος : ακολουθία n αριθμών (α 1

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

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

Κεφάλαιο 13 Αντισταθμιστική Ανάλυση

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

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

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

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

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

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

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

a n = 3 n a n+1 = 3 a n, a 0 = 1

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

Στοχαστικές Στρατηγικές. διαδρομής (1)

Ουρά Προτεραιότητας (priority queue)

Κατ οίκον Εργασία 1 Σκελετοί Λύσεων

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

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

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

ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ Γ ΗΜΕΡΗΣΙΩΝ

Κατ οίκον Εργασία 1 Σκελετοί Λύσεων

1. Η χειρότερη περίπτωση είναι όταν γίνου 10 επαναλήψεις, δηλαδή για n = 0.

Θεωρητικό Μέρος. 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); } }

Αλγόριθμοι και Πολυπλοκότητα Φώτης Ε. Ψωμόπουλος, Περικλής Α. Μήτκας

3 ο ΦΥΛΛΑΔΙΟ ΑΣΚΗΣΕΩΝ - ΠΙΝΑΚΕΣ

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

Δείκτες & Πίνακες Δείκτες, Πίνακες

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

περιεχόμενα ρυθιμός αύξησης συναρτήσεων ασυμπτωτική πολυπλοκότητα ασυμπτωτική επίδοση ασυμπτωτικοί συμβολισμοί ασυμπτωτικός συμβολισμος

Διάλεξη 19: Αλγόριθμοι ΤαξινόμησηςII. Διδάσκων: Παναγιώτης Ανδρέου

2 n N: 0, 1,..., n A n + 1 A

ΠΛΕ075: Προηγμένη Σχεδίαση Αλγορίθμων και Δομών Δεδομένων. Λουκάς Γεωργιάδης

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

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

Μέθοδοι πολυδιάστατης ελαχιστοποίησης

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

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

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

ΠΑΝΕΛΛΑΔΙΚΕΣ ΕΞΕΤΑΣΕΙΣ Α.Ε.Π.Π. ΠΡΟΣΑΝΑΤΟΛΙΣΜΟΥ Γ ΛΥΚΕΙΟΥ Θέματα και Απαντήσεις

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

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

Παράδειγμα δομικής επαγωγής Ορισμός δομικής επαγωγής Συμβολοσειρές Γλώσσες Δυαδικά δένδρα Μαθηματικά Πληροφορικής 3ο Μάθημα Αρχικός συγγραφέας: Ηλίας

1 Arq thc Majhmatik c Epagwg c

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

Εξωτερική Αναζήτηση. Ιεραρχία Μνήμης Υπολογιστή. Εξωτερική Μνήμη. Εσωτερική Μνήμη. Κρυφή Μνήμη (Cache) Καταχωρητές (Registers) μεγαλύτερη ταχύτητα

Μέθοδοι μονοδιάστατης ελαχιστοποίησης

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 8 Ο. Ταξινόμηση και Αναζήτηση Συναρτήσεις χειρισμού οθόνης ΣΙΝΑΤΚΑΣ Ι. ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Άσκηση 1 (ανακοινώθηκε στις 20 Μαρτίου 2017, προθεσμία παράδοσης: 24 Απριλίου 2017, 12 τα μεσάνυχτα).

ΔΙΑΦΟΡΑ ΘΕΜΑΤΑ. Ως «γειτονικά» ορίζονται τα κελιά που συγγενεύουν οριζόντια, κάθετα και διαγώνια. Για παράδειγμα γειτονικά του Α[3,3] είναι τα:

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

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

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

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

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

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

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

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

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

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

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

Φροντιστήριο #4 Λυμένες Ασκήσεις Μαθηματική Επαγωγή 13/3/2018

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

max & min Μεθοδολογία - 1 Τα βήματα που συνήθως ακολουθούμε στις τεχνικές εύρεσης max & min είναι τα εξής:

Bubble Hack Οπτικοποίηση του αλγορίθμου ταξινόμησης Bubble Sort στο Scratch

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

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

Βρόχοι. Εντολή επανάληψης. Το άθροισμα των αριθμών 1 5 υπολογίζεται με την εντολή. Πρόβλημα. Πώς θα υπολογίσουμε το άθροισμα των ακέραιων ;

Εργαστήριο 2: Πίνακες

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

Τηλ , Fax: , URL:

Πανεπιστήμιο Κύπρου Πολυτεχνική Σχολή

ΚΕΦΑΛΑΙΟ 5 ΑΚΟΛΟΥΘΙΕΣ ΑΡΙΘΜΗΤΙΚΗ ΓΕΩΜΕΤΡΙΚΗ ΠΡΟΟΔΟΣ

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά

Υπολογιστικά & Διακριτά Μαθηματικά

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

ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ Γ ΗΜΕΡΗΣΙΩΝ

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

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

Transcript:

Πανεπιστήμιο Ιωαννίνων Τμήμα Πληροφορικής Δομές Δεδομένων [ΠΛΥ302] Χειμερινό Εξάμηνο 2012 Ενδεικτικές απαντήσεις 1 ου σετ ασκήσεων. Άσκηση 1 Πραγματοποιήσαμε μια σειρά μετρήσεων του χρόνου εκτέλεσης τριών αλγόριθμων και λάβαμε τα παρακάτω αποτελέσματα: αλγόριθμος Α Β Γ μέγεθος εισόδου 512 1024 2048 226 320 452 52 208 832 356 612 1124 Οι ασυμπτωτικοί χρόνοι εκτέλεσης αυτών των αλγόριθμων είναι κατά φθίνουσα σειρά, και. Αντιστοιχήστε τον κάθε αλγόριθμο με μία από τις παραπάνω πολυπλοκότητες. Δικαιολογείστε τις απαντήσεις σας. Έστω, και οι χρόνοι εκτέλεσης των αλγορίθμων Α, Β και Γ αντίστοιχα. Υπολογίζουμε τον ρυθμό αύξησης των χρόνων εκτέλεσης καθώς διπλασιάζεται το και τον συγκρίνουμε με τnν αντίστοιχη αύξηση των συναρτήσεων και. Ισχύει Για ενώ για Αντιστοιχώντας τους χρόνους, και στις συναρτήσεις που παρουσιάζουν παρόμοια αύξηση λαμβάνουμε, και. Άσκηση 2 Διατάξτε τις παρακάτω συναρτήσεις ως προς το ρυθμό αύξησης, από τη μικρότερη ως τη μεγαλύτερη.,,, και [1 από 5]

Έχουμε, για. Επιπλέον επειδή Άρα. Για άρα, επειδή Για τις και Δηλαδή. Τέλος Δηλαδή. Άρα η διάταξη από το μικρότερο προς το μεγαλύτερο ρυθμό αύξησης είναι. [2 από 5]

Άσκηση 3 Έστω ότι ο χρόνος εκτέλεσης ενός αλγορίθμου ικανοποιεί την παρακάτω αναδρομική σχέση με αρχική συνθήκη. Δείξτε με χρήση επαγωγής ότι. Θα δείξουμε πρώτα με επαγωγή, ότι υπάρχουν σταθερές και τέτοιες ώστε για κάθε. Για τη βάση της επαγωγής, από την αρχική συνθήκη Η επαγωγική υπόθεση είναι ότι για κάθε,. Για το επαγωγικό βήμα πρέπει να δείξουμε ότι. Από την αναδρομική σχέση και την επαγωγική υπόθεση, αφού για, και. Τώρα θα δείξουμε με επαγωγή ότι υπάρχουν σταθερές και τέτοιες ώστε για κάθε. Για τη βάση της επαγωγής, από την αρχική συνθήκη Η επαγωγική υπόθεση είναι ότι για κάθε,. Για το επαγωγικό βήμα πρέπει να δείξουμε ότι. Από την αναδρομική σχέση και την επαγωγική υπόθεση, Άσκηση 4 Μία ακολουθία αριθμών ονομάζεται μονοκόρυφη εάν για κάποιο με, και. Θέλουμε να βρούμε το μέγιστο στοιχείο μιας μονοκόρυφης ακολουθίας, διαβάζοντας όσο το δυνατό λιγότερα στοιχεία της. Σχεδιάστε έναν αποδοτικό αλγόριθμο για αυτό το πρόβλημα και αναλύστε τον ασυμπτωτικό χρόνο εκτέλεσης του. Υποθέστε ότι η [3 από 5]

ακολουθία είναι αποθηκευμένη σε έναν πίνακα, οπότε η προσπέλαση ενός στοιχείου της γίνεται σε χρόνο. Μια τέτοια ακολουθία έχει τη μορφή του παρακάτω σχήματος: Μπορούμε να βρούμε το μέγιστο στοιχείο σε βήματα με ακολουθιακή αναζήτηση, δηλαδή ξεκινάμε από τη θέση και αυξάνουμε το κατά εάν, διαφορετικά. Για να πετύχουμε καλύτερο χρόνο χρησιμοποιούμε δυαδική αναζήτηση ως εξής. Θέτουμε και ελέγχουμε τη σχέση των και. Υπάρχουν τρεις περιπτώσεις: α) και. Τότε το είναι το μέγιστο στοιχείο. β). Τότε το μέγιστο στοιχείο βρίσκεται στην ακολουθία, οπότε επαναλαμβάνουμε την ίδια διαδικασία για την. γ). Τότε το μέγιστο στοιχείο βρίσκεται στην ακολουθία, οπότε επαναλαμβάνουμε την ίδια διαδικασία για την. Ο χρόνος εκτέλεσης του παραπάνω αλγορίθμου είναι ασυμπτωτικά ίσος με το χρόνο δυαδικής αναζήτησης, δηλαδή. Άσκηση 5 H παρακάτω συνάρτηση υπολογίζει τα αθροίσματα για όλα τα και τέτοια ώστε, όπου ένας μονοδιάστατος πίνακας ακέραιων. Τα αθροίσματα αποθηκεύονται σε ένα διδιάστατο πίνακα ακεραίων. (Υποθέτουμε ότι κάθε έχει ήδη αρχικοποιηθεί με την τιμή.) void partialsums(int *A, int N, int **B) { int i,j,k; for (i=0; i<=n-1; i++) for (j=i; j<=n-1; j++) for (k=i; k<=j; k++) B[i][j] += A[k]; } [4 από 5]

α) Ποίος είναι ο ασυμπτωτικός χρόνος εκτέλεσης της partialsums; β) Δώστε ένα βελτιωμένο τρόπο υπολογισμού του πίνακα, με ασυμπτωτικά καλύτερο χρόνο εκτέλεσης. Δηλαδή θέλουμε. α) Ο χρόνος εκτέλεσης της partialsums είναι ανάλογος του αριθμού των προσθέσεων που εκτελεί. Για τον υπολογισμό του εκτελεί προσθέσεις, επομένως κάνει προσθέσεις για το, προσθέσεις για τα και, προσθέσεις για τα, και κ.ο.κ. Δηλαδή συνολικά β) Παρατηρούμε ότι και για,. Έτσι λαμβάνουμε την παρακάτω βελτιωμένη συνάρτηση void partialsums(int *A, int N, int **B) { int i,j; for (i=0; i<=n-1; i++) B[i][i] = A[i]; } for (i=0; i<=n-1; i++) for (j=i+1; j<=n-1; j++) B[i][j] = B[i][j-1]+A[j]; Ο χρόνος εκτέλεσης είναι ανάλογος του αριθμού των προσθέσεων, που είναι ίσος με τον αριθμό των με, δηλαδή [5 από 5]