ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Εαρινό Εξάμηνο

Σχετικά έγγραφα
ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Εαρινό Εξάμηνο

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Εαρινό Εξάμηνο

{ i f i == 0 and p > 0

Ας υποθέσουμε ότι ο παίκτης Ι διαλέγει πρώτος την τυχαιοποιημένη στρατηγική (x 1, x 2 ), x 1, x2 0,

Αποδεικτικές Διαδικασίες και Μαθηματική Επαγωγή.

Φροντιστήριο 2: Ανάλυση Αλγόριθμου. Νικόλας Νικολάου ΕΠΛ432: Κατανεμημένοι Αλγόριθμοι 1 / 10

Εξαναγκασμένες ταλαντώσεις, Ιδιοτιμές με πολλαπλότητα, Εκθετικά πινάκων. 9 Απριλίου 2013, Βόλος

ΣΤΟ ΦΑΡΜΑΚΕΙΟ. Με την πιστοποίηση του έχει πρόσβαση στο περιβάλλον του φαρμακείου που παρέχει η εφαρμογή.

Οι γέφυρες του ποταμού... Pregel (Konigsberg)

Αναγνώριση Προτύπων. Σήμερα! Λόγος Πιθανοφάνειας Πιθανότητα Λάθους Κόστος Ρίσκο Bayes Ελάχιστη πιθανότητα λάθους για πολλές κλάσεις

ΣΤΟ ΙΑΤΡΕΙΟ. Με την πιστοποίηση του αποκτά πρόσβαση στο περιβάλλον του ιατρού που παρέχει η εφαρμογή.

Το κράτος είναι φτιαγμένο για τον άνθρωπο και όχι ο άνθρωπος για το κράτος. A. Einstein Πηγή:

Αναγνώριση Προτύπων. Σημερινό Μάθημα

Συναρτήσεις. Σημερινό μάθημα

ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ Γ ΤΑΞΗ

G περιέχει τουλάχιστον μία ακμή στο S. spanning tree στο γράφημα G.

Σχέσεις και ιδιότητές τους

Στοχαστικές διαφορικές εξισώσεις

Αναγνώριση Προτύπων. Σημερινό Μάθημα

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ. Πρώτη Γραπτή Εργασία. Εισαγωγή στους υπολογιστές Μαθηματικά

1. Εστω ότι A, B, C είναι γενικοί 2 2 πίνακες, δηλαδή, a 21 a, και ανάλογα για τους B, C. Υπολογίστε τους πίνακες (A B) C και A (B C) και

Ευρωπαϊκά παράγωγα Ευρωπαϊκά δικαιώματα

Αναλυτικές ιδιότητες

ΤΑΞΙΝΟΜΗΣΗ ΟΡΓΑΝΙΣΜΩΝ

Επίλυση ειδικών μορφών ΣΔΕ

Ο Ισχυρός Νόμος των Μεγάλων Αριθμών

ΑΣΕΠ 2000 ΑΣΕΠ 2000 Εμπορική Τράπεζα 1983 Υπουργείο Κοιν. Υπηρ. 1983

602. Συναρτησιακή Ανάλυση. Υποδείξεις για τις Ασκήσεις

Εισαγωγικά. 1.1 Η σ-αλγεβρα ως πληροφορία

Η εξίσωση Black-Scholes

«ΔΙΑΚΡΙΤΑ ΜΑΘΗΜΑΤΙΚΑ»

Τρίτη, 05 Ιουνίου 2001 ΤΕΧΝΟΛΟΓΙΚΗ ΚΑΤΕΥΘΥΝΣΗ Γ ΛΥΚΕΙΟΥ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ

τεσσάρων βάσεων δεδομένων που θα αντιστοιχούν στους συνδρομητές

Ανεξαρτησία Ανεξαρτησία για οικογένειες συνόλων και τυχαίες μεταβλητές

Γραμμική Ανεξαρτησία. Τμήμα Μηχανικών Η/Υ Τηλεπικοινωνιών και ικτύων Πανεπιστήμιο Θεσσαλίας. 17 Μαρτίου 2013, Βόλος

21/11/2005 Διακριτά Μαθηματικά. Γραφήματα ΒΑΣΙΚΗ ΟΡΟΛΟΓΙΑ : ΜΟΝΟΠΑΤΙΑ ΚΑΙ ΚΥΚΛΟΙ Δ Ι. Γεώργιος Βούρος Πανεπιστήμιο Αιγαίου

ιάσταση του Krull Α.Π.Θ. Θεσσαλονίκη Χ. Χαραλαμπους (ΑΠΘ) ιάσταση του Krull Ιανουάριος, / 27

Το υπόδειγμα IS-LM: Εισαγωγικά

HY 280. θεμελιακές έννοιες της επιστήμης του υπολογισμού ΑΣΚΗΣΕΙΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ. Γεώργιος Φρ.

Εκφωνήσεις και Λύσεις των Θεμάτων

ΓΥΜΝΑΣΙΟ ΑΓΙΟΥ ΣΤΥΛΙΑΝΟΥ Μ 6 ΣΧΟΛΙΚΗ ΧΡΟΝΙΑ: ΤΡΟΠΟΙ ΜΕΛΕΤΗΣ

ΚΛΑΔΟΣ: ΠΕ11 ΦΥΣΙΚΗΣ ΑΓΩΓΗΣ

Κληρονομικότητα. Σήμερα! Κλάση Βάσης Παράγωγη κλάση Απλή κληρονομικότητα Protected δεδομένα Constructors & Destructors overloading

Εφαρμογές στην κίνηση Brown

Συναρτήσεις ΙΙ. Σημερινό μάθημα

Ανεξαρτησία Ανεξαρτησία για οικογένειες συνόλων και τυχαίες μεταβλητές

Εισαγωγικές Διαλέξεις στην Θεωρία των Αλυσίδων Markov και των Στοχαστικών Ανελίξεων. Οικονομικό Πανεπιστήμιο Αθηνών

Μαθηματικά Πληροφορικής

Παραβολή ψ=αχ 2 +βχ+γ, α 0. Η παραβολή ψ = αχ 2. Γενικά : Κάθε συνάρτηση της μορφής ψ=αχ 2 + βχ +γ, α 0 λέγεται τετραγωνική συνάρτηση.

Ανεξαρτησία Ανεξαρτησία για οικογένειες συνόλων και τυχαίες μεταβλητές

Δ Ι Α Κ Ρ Ι Τ Α Μ Α Θ Η Μ Α Τ Ι Κ Α. 1η σειρά ασκήσεων

Π. ΚΡΗΤΗΣ, ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΗΥ 380, «ΑΛΓΟΡΙΘΜΟΙ & ΠΟΛΥΠΛΟΚΟΤΗΤΑ» Φ 06: ΧΡΗΣΗ ΔΟΜΩΝ ΔΕΔΟΜΕΝΩΝ

ΣΥΝΟΛΑ (προσέξτε τα κοινά χαρακτηριστικά των παρακάτω προτάσεων) Οι άνθρωποι που σπουδάζουν ΤΠ&ΕΣ και βρίσκονται στην αίθουσα

Έννοια. Η αποδοχή της κληρονομίας αποτελεί δικαίωμα του κληρονόμου, άρα δεν

Παντού σε αυτό το κεφάλαιο, αν δεν αναφέρεται κάτι διαφορετικό, δουλεύουμε σε ένα χώρο πιθανότητας (Ω, F, P) και η G F είναι μια σ-άλγεβρα.

Ημέρα 4 η (α) Αγορά και πώληση της εργασιακής δύναμης. (β) Η απόλυτη υπεραξία. Αγορά και πώληση της εργασιακής δύναμης

ΣΧΟΛΙΚΟ ΕΤΟΣ ΕΥΘΥΓΡΑΜΜΗ ΟΜΑΛΗ ΚΙΝΗΣΗ ΤΡΙΩΡΗ ΓΡΑΠΤΗ ΕΞΕΤΑΣΗ ΣΤΗ ΦΥΣΙΚΗ A ΛΥΚΕΙΟΥ. Ονοματεπώνυμο Τμήμα

Κεφάλαιο Η εκθετική κατανομή. Η πυκνότητα πιθανότητας της εκθετικής κατανομής δίδεται από την σχέση (1.1) f(x) = 0 αν x < 0.

Μονάδες α. Να γράψετε στο τετράδιό σας τον παρακάτω πίνακα σωστά συµπληρωµένο.

Εστω X σύνολο και A μια σ-άλγεβρα στο X. Ονομάζουμε το ζεύγος (X, A) μετρήσιμο χώρο.

Μεγάλες αποκλίσεις* 17.1 Η έννοια της μεγάλης απόκλισης

ΔΙΚΑΙΩΜΑΤΑ ΠΡΟΣΟΡΜΙΣΗΣ, ΠΑΡΑΒΟΛΗΣ, ΠΡΥΜΝΟΔΕΤΗΣΗΣ ΚΑΙ ΕΛΛΙΜΕΝΙΣΜΟΥ ΣΚΑΦΩΝ ΣΕ ΘΑΛΑΣΣΙΕΣ ΠΕΡΙΟΧΕΣ. (ΛΙΜΑΝΙΑ κ.λπ.) ΤΟΠΙΚΗΣ ΑΡΜΟΔΙΟΤΗΤΑΣ ΛΙΜΕΝΙΚΩΝ

ΑΠΟΛΥΤΗΡΙΕΣ ΕΞΕΤΑΣΕΙΣ Γ ΤΑΞΗΣ ΕΝΙΑΙΟΥ ΛΥΚΕΙΟΥ ΤΡΙΤΗ 30 ΜΑΪΟΥ 2000 ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ ΘΕΤΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ: ΧΗΜΕΙΑ ΣΥΝΟΛΟ ΣΕΛΙ ΩΝ: ΕΞΙ (6)

έγγραφο σε κάθε διάσταση αντιστοιχούν στο πλήθος εμφανίσεων της λέξης (που αντιστοιχεί στη συγκεκριμένη διάσταση) εντός του εγγράφου.

5.1 Μετρήσιμες συναρτήσεις

Μητροπολιτικά Οπτικά Δίκτυα Εισαγωγή

Εισαγωγικές Διαλέξεις στην Θεωρία των Αλυσίδων Markov και των Στοχαστικών Ανελίξεων. Οικονομικό Πανεπιστήμιο Αθηνών

Μεγάλες αποκλίσεις* 17.1 Η έννοια της μεγάλης απόκλισης

ΑΣΚΗΣΕΙΣ ΔΙΚΤΥΑ ΠΡΟΣΒΑΣΗΣ ΑΣΚΗΣΗ 1

Συγκέντρωση Κίνησης Εισαγωγή Στατική Συγκέντρωση Κίνησης

Συναρτήσεις & Κλάσεις

Φυσική Θετικής & Τεχνολογικής Κατεύθυνσης Β Λυκείου 3 ο Κεφάλαιο Ηλεκτρικό Πεδίο. Ηλεκτρικό πεδίο. Παρασύρης Κώστας Φυσικός Ηράκλειο Κρήτης

Martingales. 3.1 Ορισμός και παραδείγματα

Ψηφιακή Εικόνα. Σημερινό μάθημα!

Δίκαιο και Οικονομικά: Οι Εξετάσεις

ΠΡΟΣΕΓΓΙΣΤΙΚΑ ΣΧΗΜΑΤΑ ΓΙΑ ΠΡΟΒΛΗΜΑΤΑ ΧΡΟΝΟΔΡΟΜΟΛΟΓΗΣΗΣ

17 Μαρτίου 2013, Βόλος

ΘΕΜΑ: Διαφορές εσωτερικού εξωτερικού δανεισμού. Η διαχρονική κατανομή του βάρους από το δημόσιο δανεισμό.

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ. Τρίτη Γραπτή Εργασία στη Στατιστική

Η ανισότητα α β α±β α + β με α, β C και η χρήση της στην εύρεση ακροτάτων.

Ο τύπος του Itô. f (s) ds (12.1) f (g(s)) dg(s). (12.2) t f (B s ) db s + 1 2

ΕΙΣΑΓΩΓΗ. H λογική ασχολείται με δύο έννοιες, την αλήθεια και την απόδειξη. Oι έννοιες αυτές έχουν γίνει

ΜΑΘΗΜΑ: ΕΜΠΟΡΙΚΟ ΔΙΚΑΙΟ

Μεγάλες αποκλίσεις* 17.1 Η έννοια της μεγάλης απόκλισης

Ανελίξεις σε συνεχή χρόνο

( ιμερείς) ΙΜΕΛΕΙΣ ΣΧΕΣΕΙΣ Α Β «απεικονίσεις»

τους στην Κρυπτογραφία και τα

Ημέρα 3 η. (α) Aπό την εργασιακή διαδικασία στη διαδικασία παραγωγής (β) Αξία του προϊόντος και αξία της εργασιακής δύναμης

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

- 1 - Ποιοι κερδίζουν από το εμπόριο αγαθών και υπηρεσιών; Γιατί η άμεση ανταλλαγή αγαθών, ορισμένες φορές, είναι δύσκολο να

(20 ο ) ΣΤΑΔΙΑΚΕΣ ΚΑΤΑΣΚΕΥΕΣ Ι: ΑΠΛΗΣΤΟΙ ΑΛΓΟΡΙΘΜΟΙ

Η έκδοση αυτή είναι υπό προετοιμασία. Γιάννης Α. Αντωνιάδης, Αριστείδης Κοντογεώργης

ΘΕΜΑ 1ο Α. α) Δίνεται η συνάρτηση F(x)=f(x)+g(x). Αν οι συναρτήσεις f, g είναι παραγωγίσιμες, να αποδείξετε ότι: F (x)=f (x)+g (x).

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

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

(7 ο ) ΔΙΑΙΡΕΙ & ΒΑΣΙΛΕΥΕ Ι: «ταξινόμηση» (8 ο ) ΔΙΑΙΡΕΙ & ΒΑΣΙΛΕΥΕ ΙΙ: «κυρτό περίβλημα»

ΠΑΝΕΠΙΣΤΗΜΙΑΚΑ ΦΡΟΝΤΙΣΤΗΡΙΑ ΚΟΛΛΙΝΤΖΑ ΜΑΘΗΜΑ: ΕΜΠΟΡΙΚΟ ΔΙΚΑΙΟ

Κατασκευή της κίνησης Brown και απλές ιδιότητες

Αρτιες και περιττές συναρτήσεις

(13 ο ) ΔΥΝΑΜΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΙII: «βέλτιστο στατικό ευρετήριο»

Transcript:

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ231: Δομές Δεδομένων και Αλγόριθμοι Εαρινό Εξάμηνο 2017-2018 Φροντιστήριο 3 - Λύσεις 1. Εστω ο πίνακας Α = [12, 23, 1, 5, 7, 19, 2, 14]. i. Να δώσετε την κατάσταση του πίνακα σε κάθε τερματισμό του εξωτερικού βρόγχου του αλγορίθμου ταξινόμησης με επιλογή. 1η εκτέλεση. 2η εκτέλεση. 3η εκτέλεση. 4η εκτέλεση. 5η εκτέλεση. 6η εκτέλεση. 7η εκτέλεση. 1 23 12 5 7 19 2 14 1 2 12 5 7 19 23 14 1 2 5 12 7 19 23 14 1 2 5 7 12 14 23 19 ii. Να δώσετε την κατάσταση του πίνακα σε κάθε τερματισμό του εξωτερικού βρόγχου του αλγορίθμου ταξινόμησης με εισαγωγή. 1η εκτέλεση. 2η εκτέλεση. 3η εκτέλεση. 4η εκτέλεση. 5η εκτέλεση. 1 12 23 5 7 19 2 14 1 5 12 23 7 19 2 14 1 5 7 12 23 19 2 14 1

6η εκτέλεση. 7η εκτέλεση. 1 5 7 12 19 23 2 14 iii. Να δώσετε την κατάσταση του πίνακα σε κάθε τερματισμό των αναδρομικών εκτελέσεων του αλγορίθμου ταξινόμησης με συγχώνευση. Αρχικά καλείται η MergeSort(A,temp,0,7) η οποία καλεί τις MergeSort(A,temp,0,3) και MergeSort(A,temp,4,7). Η πρώτη καλεί τις MergeSort(A,temp,0,1) και MergeSort(A,temp,2,3), και η δεύτερη καλεί τις MergeSort(A,temp,4,5) και MergeSort(A,temp,6,7). Η κάθε εκτέλεση της MergeSort(A,temp,x,y) όπου y=x+1 καλεί τις διαδικασίες MergeSort(A,temp,x,x) και MergeSort(A,temp,y,y) όπου και τερματίζουν αμέσως χωρίς να πραγματοποιούν όποια αλλαγή στον πίνακα. Οι υπόλοιπες εκτελέσεις της Mergesort έχουν τα εξής αποτελέσματα. Mergesort(A,temp,0,1) Mergesort(A,temp,2,3) Mergesort(A,temp,0,3) Mergesort(A,temp,4,5) Mergesort(A,temp,6,7) Mergesort(A,temp,4,7) Mergesort(A,temp,0,7) 1 5 12 23 7 19 2 14 12 23 1 5 2 7 14 19 iv. Να δώσετε την κατάσταση του πίνακα σε κάθε τερματισμό των αναδρομικών εκτελέσεων του αλγορίθμου ταξινόμησης quicksort. Αρχικά καλείται η QuickSort(A,0,7). Υποθέτωντας πως το άξον στοιχείο υπολογίζεται ως ο μισός του μεγέθους του πίνακα εισόδου, δηλαδή 7/2 = 3 (άξιον στοιχείο 5), η διαδικασία Partition(A,0,7,3) έχει το εξής αποτέλεσμα στον πίνακα. 2 1 23 14 7 19 12 5 και επιστρέφει την ϑέση 2 ως την ϑέση διαχωρισμού του πίνακα σε στοιχεία μικρότερα και μεγαλύτερα του 5. Ανταλλάζοντας το άξιον στοιχείο με το στοιχείο της ϑέσης 2 έχουμε το εξής. 2 1 5 14 7 19 12 23 Επειτα καλείται η QuickSort(A,0,1) η οποία δίνει: 1 2 5 14 7 19 12 23 Στην συνέχεια καλείται η QuickSort(A,3,7) η οποία χρησιμοποιώντας ως άξιον στοιχείο το στοιχείο (3 + 7)/2 = 5 έχει ως αποτέλεσμα 1 2 5 14 7 12 19 23 2

με ϑέση διαχωρισμού (ο αριθμός επιστροφής της Partition(A,3,7,5)) την ϑέση 6. Ετσι και μετά καλείται η QuickSort(A,3,5) και έπειτα η QuickSort(A,7,7) η οποία τερματίζει χωρίς να επεξεργαστεί τον πίνακα. Η QuickSort(A,3,5) δίνει με ϑέση διαχωρισμού την ϑέση 3. Καθώς ο πίνακας έχει ήδη ταξινομηθεί οι υπόλοιπες εκτελέσεις της διαδικασίας δεν ϑα επιφέρουν αλλαγές στον πίνακα. 2. Εστω πίνακας ακεραίων [a 0,... a n 1 ] για κάποιο n. Επιπλέον γνωρίζουμε ότι για 0 i < n τότε a i m για κάποιο m. Προτίνετε τον αποδοτικότερο αλγόριθμο ταξινόμησης αν i. m = c 1 n + c 2 για κάποια c 1 > 0, c 2 > 0. ii. m c 1 n + c 2 και m c 3 n log 2 n + c 4 για κάποια c 1 > 0, c 2 > 0, c 3 > 0, c 4 > 0. iii. m c 1 n + c 2 και m c 3 n 2 + c 4 n + c 5 για κάποια c 1 > 0, c 2 > 0, c 3 > 0, c 4 > 0, c 5 > 0. iv. m Θ(log n). v. m O(n n ). Δικαιολογήστε τις απαντήσεις σας. i. m = c 1 n + c 2 για κάποια c 1 > 0, c 2 > 0. Ο αλγόριθμος ταξινόμησης bucketsort επιτυγχάνει ταξινόμηση σε χρόνο T(n) O(n + m) δηλαδή υπάρχει c > 0, n 0 0 έτσι ώστε για κάθε n n 0 ισχύει ότι T(n) c(n + c 1 n + c 2 ) = T(n) c (c 1 + 1) n + c c 2 = Προτίνεται ο αλγόριθμος ταξινόμησης bucketsort γιατί επιτυγχάνει καλύτερο χρόνο ταξινόμησης από τους αλγόριθμους mergesort και quicksort που έχουν χρόνο ταξινόμησης O(n log 2 (n)). ii. m c 1 n + c 2 και m c 3 n log 2 n + c 4 για κάποια c 1 > 0, c 2 > 0, c 3 > 0, c 4 > 0. Στη χείριστη περίπτωση ο αλγόριθμος ταξινόμησης bucketsort επιτυγχάνει ταξινόμηση σε χρόνο T(n) O(n + m) με m = c 3 n log 2 n + c 4. δηλαδή υπάρχει c > 0, n 0 0 έτσι ώστε για κάθε n n 0 ισχύει ότι T(n) c(n + c 3 n log 2 n + c 4 ) = T(n) c n + c c 3 n log 2 n + c c 4 = T(n) O(n log 2 n) Στην καλύτερη περίπτωση ο αλγόριθμος ταξινόμησης bucketsort επιτυγχάνει ταξινόμηση σε χρόνο T(n) O(n + m) με m = c 1 n + c 2. Δηλαδή υπάρχει c > 0, n 0 0 έτσι ώστε για κάθε n n 0 ισχύει ότι T(n) c(n + c 1 n + c 2 ) = T(n) c (c 1 + 1) n + c c 2 = 3

Προτίνεται ο αλγόριθμος ταξινόμησης bucketsort γιατί ενώ επιτυγχάνει ίδιο χρόνο ταξινόμησης, O(n log 2 (n)), με τους αλγόριθμους mergesort και quicksort στη χείριστη περίπτωση, υπερέχει στην ταξινόμηση καλύτερης περίπτωσης με χρόνο O(n). iii. m c 1 n + c 2 και m c 3 n 2 + c 4 n + c 5 για κάποια c 1 > 0, c 2 > 0, c 3 > 0, c 4 > 0, c 5 > 0. Στην χείριστη περίπτωση ο αλγόριθμος ταξινόμησης bucketsort επιτυγχάνει ταξινόμηση σε χρόνο T(n) O(n + m) με m = c 3 n 2 + c 4 n + c 5. Δηλαδή υπάρχει c > 0, n 0 0 έτσι ώστε για κάθε n n 0 ισχύει ότι T(n) c(n + c 3 n 2 + c 4 n + c 5 ) = T(n) c c 3 n 2 + c (c 4 + 1 n + c c 5 = T(n) O(n 2 ) Προτίνεται ο αλγόριθμος ταξινόμησης quicksort (η mergesort) γιατί επιτυγχάνει χρόνο ταξινόμησης O(n log 2 (n)) σε αντίθεση με τον με τον αλγόριθμο bucketsort που στην χείριστη περίπτωση ταξινομεί σε χρόνο O(n 2 ). iv. m Θ(log n). Το γεγονός ότι m Θ(log n) μας επιτρέπει να συμπεράνουμε ότι υπάρχει c > 0, n 0 έτσι ώστε για κάθε n n 0 ισχύει ότι m c log 2 n. Άρα στην χείριστη περίπτωση ο αλγόριθμος ταξινόμησης bucketsort επιτυγχάνει ταξινόμηση σε χρόνο T(n) O(n + m) με m = c log 2 n. Δηλαδή υπάρχει c > 0, n 0 0 έτσι ώστε για κάθε n n 0 T(n) c(n + c log 2 n) = T(n) c c n + c c log 2 n = Προτίνεται ο αλγόριθμος ταξινόμησης bucketsort γιατί επιτυγχάνει καλύτερο χρόνο ταξινόμησης από τους αλγόριθμους mergesort και quicksort που έχουν χρόνο ταξινόμησης O(n log 2 (n)). v. m O(n n ). Το γεγονός ότι m O(n n ) μας επιτρέπει να συμπεράνουμε ότι υπάρχει c > 0, n 0 έτσι ώστε για κάθε n n 0 ισχύει ότι m c n n. Άρα στην χείριστη περίπτωση ο αλγόριθμος ταξινόμησης bucketsort επιτυγχάνει ταξινόμηση σε χρόνο T(n) O(n + m) με m = c n n. Δηλαδή υπάρχει c > 0, n 0 0 έτσι ώστε για κάθε n n 0 T(n) c(n + c n n ) = T(n) c n + c c n n = T(n) O(n n ) Προτίνεται ο αλγόριθμος ταξινόμησης quicksort (η mergesort) γιατί επιτυγχάνει χρόνο ταξινόμησης O(n log 2 (n)) σε αντίθεση με τον με τον αλγόριθμο bucketsort που στην χείριστη περίπτωση ταξινομεί σε χρόνο O(n n ). 3. Δώστε υλοποίηση της διαδικασίας mergesort που να αποφεύγει την αντιγραφή ολόκληρου του βοη- ϑητικού πίνακα στο τέλος κάθε αναδρομικής κλήσης. (Υπόδειξη: Θεωρείστε ότι αρχικά ο βοηθητικός πίνακας είναι αντίγραφο του πίνακα εισόδου της διαδικασίας). 4

Αρχικά ϑεωρούμε ότι ο βοηθητικός πίνακας tmp είναι αντίγραφο του πίνακα εισόδου A της διαδικασίας. Αυτό μας επιτρέπει να ανταλλάζουμε τον πίνακα εισόδου με το βοηθητικό πίνακα κάθε φορά που καλούμε αναδρομικά τη διαδικασία mergesort. Ετσι δεν χρειάζεται η αντιγραφή ολόκληρου του πίνακα στο τέλος κάθε αναδρομικής κλήσης. void mergesort ( i n t [ ] A, i n t [ ] tmp, i n t l, i n t r ) { i f ( l r ) return ; i n t mid ( l + r ) / 2 ; mergesort ( tmp, A, l, mid ) ; mergesort ( tmp, A, mid + 1, r ) ; i n t k l ; i n t i l, j mid + 1 ; while ( i < mid && j < r ) i f ( tmp [ i ] < tmp [ j ] ) A[ k++] tmp [ i + +]; e l s e i f ( tmp [ i ] > tmp [ j ] ) A[ k++] tmp [ j + +]; } while ( i < mid ) A[ k++] tmp [ i + +]; while ( j < r ) A[ k++] tmp [ j + +]; 4. Ο καθηγητής Δ. Α. Αφελής υποστηρίζει πως έχει ανακαλύψει μια νέα δομή δεδομένων για υλοποίηση ουράς προτεραιότητας η οποία επιτρέπει υλοποίηση κάθε μιας από τις πράξεις Insert, FindMax,και DeleteMax σε χρόνο εκτέλεσης χειρίστης περίπτωσης Ο(1). Να αποδείξετε ότι ο κα- ϑηγητής έχει λάθος. Υποθέτουμε ότι ο καθηγητής έχει δίκαιο. Ο πιο κάτω αλγόριθμος υποθέτει υλοποίηση της δομής NaiveList του καθηγητή. i n t A[ n ] ; NaiveList l new NaiveList ( ) ; for ( i 0; i < n ; i ++) l. I n s e r t (A[ i ] ) ; for ( i 0; i < n ; i ++) { A[ i ] l. FindMax ( ) ; l. DeleteMax ( ) ; } Παρατηρούμε ότι, αν οι πράξεις Insert, FindMax και DeleteMax έχουν χρόνο εκτέλεσης O(1), ο πιο πάνω αλγόριθμος επιτυγχάνει ταξινόμηση του πίνακα Α (σε φθίνουσα σειρά) σε χρόνο O(n). Αυτό όμως έρχεται σε αντίφαση με το ϑεώρημα που δηλώνει ότι ο χρόνος εκτέλεσης οποιουδήποτε σειριακού αλγόριθμου ταξινόμησης είναι Ω(n log 2 n). Επομένως ο καθηγητής έχει λάθος. 5