2-1 Ανάλυση Αλγορίθμων Αλγόριθμος Πεπερασμένο σύνολο εντολών που, όταν εκτελεστούν, επιτυγχάνουν κάποιο επιθυμητό αποτέλεσμα –Δεδομένα εισόδου και εξόδου.

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
ΑΡΙΘΜΗΤΙΚΗ ΕΠΙΛΥΣΗ ΤΩΝ ΔΙΑΦΟΡΙΚΩΝ ΕΞΙΣΩΣΕΩΝ ΜΕ ΜΕΡΙΚΕΣ ΠΑΡΑΓΩΓΟΥΣ
Advertisements

Προσομοίωση Απλού Μοντέλου Markov σε
Δομές Δεδομένων και Αλγόριθμοι
Ερωτηματολόγιο Συλλογής Απαιτήσεων Εφαρμογών Υψηλών Επιδόσεων
ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΣΗΜΑΤΩΝ & ΣΥΣΤΗΜΑΤΩΝ ΧΩΡΟΣ ΚΑΤΑΣΤΑΣΗΣ.
Στοιχειώδεις Δομές Δεδομένων TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Τύποι δεδομένων στη Java • Ακέραιοι.
Επιμέλεια: Διογένης Κοσμόπουλος 2ο ΓΕΛ Αργυρούπολης.
ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ ΤΜΗΜΑΤΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ
Πολυπλοκότητα Παράμετροι της αποδοτικότητας ενός αλγόριθμου:
Δομές Αναζήτησης TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A εισαγωγή αναζήτησηεπιλογή διατεταγμένος πίνακας.
Αλγόριθμοι Ι Κάθε καλώς ορισμένη υπολογιστική διαδικασία, η οποία καλείται να επιλύσει ένα συγκεκριμένο πρόβλημα εντός πεπερασμένου χρόνου. Αλγόριθμος.
Σχεδίαση Αλγορίθμων Προτεινόμενα βιβλία:
Το μοντέλο της απλής παλινδρόμησης
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Εισαγωγή στην Επεξεργασία Ερωτήσεων.
Εισαγωγικές Έννοιες Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο.
Κεφάλαιο 2ο Πεπερασμένα αυτόματα.
Καλώς ήρθατε στις Οικονομικές Επιστήμες
Η αλληλουχία των ενεργειών δεν είναι πάντα μία και μοναδική!!!
2006 GfK Praha CORRUPTION CLIMATE IN EUROPE % % % %0 - 10% % % % % % ΚΛΙΜΑ ΔΙΑΦΘΟΡΑΣ Η.
Σχεδίαση αλγορίθμων (2ο μέρος)
1 Ολυμπιάδα Πληροφορικής Μάθημα 2. 2 Στόχοι μαθήματος Αριθμητικοί– Λογικοί Τελεστές Η εντολή IF.
Η αλληλουχία των ενεργειών δεν είναι πάντα μία και μοναδική!!!
Β΄ ΓΕΛ ΕισΑρχΕπ Η/Υ παρ – 2.2.5
Δομές Δεδομένων 1 Στοίβα. Δομές Δεδομένων 2 Στοίβα (stack)  Δομή τύπου LIFO: Last In - First Out (τελευταία εισαγωγή – πρώτη εξαγωγή)  Περιορισμένος.
Μεταθέσεις & Συνδυασμοί
ΓΕΝΙΚΕΣ ΟΔΗΓΙΕΣ ΔΙΔΑΣΚΑΛΙΑΣ & ΕΝΔΕΙΚΤΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΛΗΣ
Μεταβλητές – εντολές εκχώρησης- δομή ακολουθίας
ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ 2: ΘΕΜΑΤΑ ΘΕΩΡΗΤΙΚΗΣ ΕΠΙΣΤΗΜΗΣ Η/Υ
Βαρόμετρο ΕΒΕΘ - Καταναλωτές Μάρτιος “Η καθιέρωση ενός αξιόπιστου εργαλείου καταγραφής του οικονομικού, επιχειρηματικού και κοινωνικού γίγνεσθαι.
Η αλληλουχία των ενεργειών δεν είναι πάντα μία και μοναδική!!!
Αλγόριθμοι 2.1.1,
ΤΑ ΔΟΝΤΙΑ ΜΑΣ.
ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ 2: ΘΕΜΑΤΑ ΘΕΩΡΗΤΙΚΗΣ ΕΠΙΣΤΗΜΗΣ Η/Υ
Quicksort Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο.
Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 1 Κεφάλαιο 4 Σημασιολογία μιας Απλής Προστακτικής Γλώσσας Προπτυχιακό.
ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Διδάσκοντες:Στάθης Ζάχος Νίκος Παπασπύρου
Κεφάλαιο 10 – Υποπρογράμματα
ΗΥ150 – ΠρογραμματισμόςΚώστας Παναγιωτάκης ΗΥ-150 Προγραμματισμός Αναδρομή (1/2)
Αλγόριθμοι - Τμήμα Πληροφορικής ΑΠΘ - 4ο εξάμηνο1 Ανάλυση Αλγορίθμων b Θέματα: Ορθότητα Χρονική αποδοτικότητα Χωρική αποδοτικότητα Βελτιστότητα b Προσεγγίσεις:
Κάντε κλικ για έναρξη… Τ Ο ΠΕΡΙΒΑΛΛΟΝ ΕΡΓΑΣΙΑΣ Κέντρο εντολών Χώρος γραφικών (σελίδα) Χώρος σύνταξης διαδικασιών.
ΒΕΣ 06: Προσαρμοστικά Συστήματα στις Τηλεπικοινωνίες © 2007 Nicolas Tsapatsoulis Προσαρμοστικοί Αλγόριθμοι Υλοποίησης Βέλτιστων Ψηφιακών Φίλτρων: Ο αλγόριθμος.
Ασυμπτωτικός Συμβολισμός
Διαφάνειες παρουσίασης #2
Δομές Δεδομένων 1 Θέματα Απόδοσης. Δομές Δεδομένων 2 Οργανώνοντας τα Δεδομένα  Η επιλογή της δομής δεδομένων και του αλγορίθμου επηρεάζουν το χρόνο εκτέλεσης.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Επεξεργασία Ερωτήσεων.
ΚΕΦΑΛΑΙΟ Τι είναι αλγόριθμος
HY100 : ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΥΠΟΛΟΓΙΣΤΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ, ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ, ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΔΙΔΑΣΚΟΝΤΕΣ Αντώνιος Σαββίδης, Χρήστος.
Χρονική Πολυπλοκότητα
Επιστημονικός Υπολογισμός Ι Πρώτο Εργαστήριο Εισαγωγή στο matlab 15 Οκτωβρίου 2010 Γιώργος Δρακόπουλος ΤΜΗΥΠ.
ΚΕΦΑΛΑΙΟ Το αλφάβητο της ΓΛΩΣΣΑΣ
Η Κεντρική Μονάδα Συστήματος Εισαγωγή στην Πληροφορκή 1 Η κεντρική μονάδα του συστήματος (base unit ή system unit) αποτελεί τον πυρήνα ενός υπολογιστή.
ΠΑΡΑΔΕΙΓΜΑ: ΤΑ ΕΠΙΠΕΔΑ ΥΛΙΚΟΥ – ΛΟΓΙΣΜΙΚΟΥ ΣΕ ΕΝΑΝ ΥΠΟΛΟΓΙΣΤΗ.
Για μτ από ατ μέχρι ττ [με_βήμα β] εντολές Τέλος_επανάληψης : περιοχή εντολών μτ : η μεταβλητή της οποίας η τιμή θα περάσει από την αρχική.
Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον
ΚΕΦΑΛΑΙΟ 2ο - ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ
ΑΛΓΟΡΙΘΜΟΣ ΠΡΟΒΛΗΜΑ ΑΛΓΟΡΙΘΜΟΣ ΛΥΣΗ
Αρχεσ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Η/Υ ΤΑξη Β΄
Αρχεσ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Η/Υ ΤΑξη Β΄
ΑΝΑΠΑΡΑΣΤΑΣΗ ΑΚΕΡΑΙΩΝ
ΔΟΜΗ ΕΠΑΝΑΛΗΨΗΣ «ΓΙΑ» Για μτ από ατ μέχρι ττ [με_βήμα β] εντολές Τέλος_επανάληψης : περιοχή εντολών μτ : η μεταβλητή της.
Οι διάφορες εκδοχές της
Μανασσάκης Βασίλης Καθηγητής Πληροφορικής
Τελεστές και ή όχι Για την εκτέλεση αριθμητικών πράξεων
Εντολές και δομές αλγορίθμου
Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον ΑΕΠΠ
ΑΣΥΜΠΤΩΤΙΚΗ ΑΝΑΛΥΣΗ & ΠΡΟΣΘΕΣΗ
Ενότητα Γ7.3.8(Προβλήματα Ακολουθιακής Δομής )
Κυριάκου Νικόλαος Πληροφορικής ΠΕ-20
Λήψη Αποφάσεων και Συναρτήσεις Ελέγχου
Μεταγράφημα παρουσίασης:

2-1 Ανάλυση Αλγορίθμων Αλγόριθμος Πεπερασμένο σύνολο εντολών που, όταν εκτελεστούν, επιτυγχάνουν κάποιο επιθυμητό αποτέλεσμα –Δεδομένα εισόδου και εξόδου –Κάθε εντολή πρέπει να είναι: καλά ορισμένη απλή –Η εκτέλεση πρέπει να σταματά Για να αναλύσουμε τον χρόνο που κάνει ένας αλγόριθμος για να υπολογίσει το αποτέλεσμά του, θα επινοήσουμε ένα υπολογιστικό μοντέλο που βασίζεται σε έξι αξιώματα

2-2 Λεπτομερές Υπολογιστικό Μοντέλο 6 αξιώματα –Χρόνος για την φόρτωση / αποθήκευση δεδομένων –Χρόνος για αριθμητικές και λογικές πράξεις –Χρόνος για κλήση και επιστροφή συνάρτησης –Χρόνος για το πέρασμα παραμέτρων σε μια συνάρτηση –Χρόνος για τη προσπέλαση στοιχείων διανύσματος –Χρόνος για τη δημιουργία/κατασκευή δεδομένων (π.χ. Δέσμευση μνήμης, κατασκευή αντικειμένων κλπ.) Υπάρχει διαφορά ανάμεσα σε ένα μοντέλο και τη πραγματικότητα Θεωρούμε για απλότητα ότι όλα τα δεδομένα είναι ακέραιοι αριθμοί ΄ή απλοί τύποι

2-3 Αξίωμα 1: Φόρτωση / Αποθήκευση Ο χρόνος που απαιτείται για τη φόρτωση δεδομένων από τη δυναμική μνήμη του υπολογιστή σε μια μεταβλητή είναι σταθερός και ίσος με  fetch Ο χρόνος που απαιτείται για την αποθήκευση ενός αποτελέσματος στη δυναμική μνήμη του υπολογιστή είναι σταθερός και ίσος με  store.

2-4 Αξίωμα 2: Βασικές Λειτουργίες Ο χρόνος που χρειάζεται για να εκτελεστούν βασικές λειτουργίες όπως για παράδειγμα πρόσθεση, αφαίρεση, πολλαπλασιασμός, διαίρεση, σύγκριση είναι σταθερός και ίσος με  +,  -,  ×,  ÷,  <, αντίστοιχα.

2-5 Αξίωμα 3: Κλήση / Επιστροφή Συνάρτησης Ο χρόνος που απαιτείται για τη κλήση μιας συνάρτησης είναι σταθερός και ίσος με  cal Όμοια ο χρόνος που απαιτείται για την επιστροφή από μια συνάρτηση πίσω στο σημείο κλήσης μετά τη περάτωση της συνάρτησης είναι σταθερός και ίσος με  return.

2-6 Αξίωμα 4: Πέρασμα Παραμέτρων Ο χρόνος που απαιτείται να περάσει μια παράμετρος σε μια συνάρτηση είναι σταθερός και ίσος με το χρόνο αποθήκευσης των δεδομένων μιας μεταβλητής στη δυναμική μνήμη του υπολογιστή  store.

2-7 Παράδειγμα: Χρόνος Εκτέλεσης Προγράμματος

2-8

2-9 Αξίωμα 5: Προσπέλαση Στοιχείου Διανύσματος Ο χρόνος που απαιτείται για το υπολογισμό θέσης στοιχείου διανύσματος (π.χ. a[i]), είναι σταθερός και ίσος με  [·]. Αυτός ο χρόνος δεν περιλαμβάνει το χρόνο υπολογισμού του δείκτη θέσης (π.χ. της έκφρασης i+j κατα τη διάρκεια προσπέλασης του στοιχείου a[i+j]), ούτε το χρόνο φόρτωσης / αποθήκευσης του στοιχείου του διανύσματος

2-10 Παράδειγμα: Υπολογισμός Τιμής Πολυωνύμου

2-11

2-12 Ανάλυση Αναδρομικών Συναρτήσεων Το παραγοντικό ενός μη αρνητικού ακεραίου n ορίζεται ως Μπορούμε να ορίσουμε το παραγοντικό αναδρομικά ως

2-13

2-14

2-15 Αναδρομικές Σχέσεις

2-16 Επίλυση της Αναδρομής

2-17 Αξίωμα 6: Κατασκευή Δεδομένων Ο χρόνος δημιουργίας δεδομένων (απλών τύπων) είναι σταθερός και ίσος με  new. Ο χρόνος αυτός δεν περιλαμβάνει αρχικοποιήσεις τιμών

2-18 Ανάλυση με τη Χρήση Απλουστευμένου Μοντέλου Η ανάλυση του χρόνου εκτέλεσης ενός αλγόριθμου μπορεί να επιτευχθεί εύκολα εάν απλουστεύσουμε το μοντέλο μας και θεωρήσουμε ότι όλοι οι χρόνοι που είδαμε παραπάνω είναι σταθεροί και ίσοι με μια μονάδα χρόνου

2-19 Επισκόπηση: Αριθμητικές και Γεωμετρικές Σειρές Αριθμητική σειρά: 1, 2, 3,.... Άθροιση Γεωμετρική σειρά 1, a, a 2, a 3,.... Άθροιση

2-20 Παράδειγμα: Άθροιση Αριθμητικής Σειράς

2-21

2-22 Παράδειγμα Αλγόριθμος 1 (Απλός): Άθροισμα Γ.Σ.

2-23 3\

2-24 Παράδειγμα Αλγόριθμος 1 (Horner): Άθροισμα Γ.Σ.

2-25

2-26 Παράδειγμα Αλγόριθμος 3 (Αναδρομικός): Άθροισμα Γ.Σ.

2-27

2-28 Σύγκριση Χρόνου Εκτέλεσης των Παραπάνω Αλγορίθμων

2-29

2-30 Ασυμπτωτική Ανάλυση Αλγορίθμων Η Ασυμπτωτική Ανάλυση Αλγορίθμων μας επιτρέπει να συγκρίνουμε αλγόριθμους (χρόνο εκτέλεσης, χρήση μνήμης κλπ.) με τρόπο που να είναι ανεξάρτητος του υπολογιστή, λειτουργικού συστήματος, συμβολομεταφραστή κ.α.

2-31 Σημειολογία Ασυμπτωτικό άνω όριοO(.) [big oh] –Σφιχτό ασυμπτωτικό άνω όριο Ασυμπτωτικό κάτω όριο  (.) [omega] Ασυμπτωτικό ακριβές όριο  (.) [theta] Χαλαρό ασυμπτωτικό άνω όριοo(.) [little oh]

2-32 Ορισμός Ασυμπτωτικού Άνω Ορίου Ο() - Big Oh Ας θεωρήσουμε μια συνάρτηση f(n) η οποία είναι θετική για όλες τις τιμές του ορίσματος n ≥ 0. Λέμε ότι η “f(n) είναι big oh g(n),” και το γράφουμε σαν f(n) = O(g(n)), εάν υπάρχει ακέραιος αριθμός n 0 και μια σταθερά c > 0 τέτοια ώστε, για όλους τους ακεραίους n ≥ n 0, είναι f(n) ≤ cg(n).

2-33

2-34 Ιδιότητες του Big Oh Μεταβατικότητα –Εάν f(n) = O(g(n)) και g(n) = O(h(n)) τότε f(n) = O(h(n)) Προσθετικότητα –Εάν f 1 (n) = O(g 1 (n)) και f 2 (n) = O(g 2 (n)), τότε f 1 (n) + f 2 (n) = O(max(g 1 (n), g 2 (n))) Πολλαπλασιατικότητα –Εάν f 1 (n)=O(g 1 (n)), f 2 (n)=O(g 2 (n)), τότε f 1 (n)×f 2 (n)=O(g 1 (n)×g 2 (n)). –Εάν f 1 (n)=O(g 1 (n)) και g 2 (n) είναι θετική για τους ακεραίους n ≥ 0, τότε f 1 (n) × g 2 (n) = O(g 1 (n) × g 2 (n)).

2-35 Ο Κανόνας του Ορίου

2-36 Big Oh για Κοινές Συναρτήσεις Πολυώνυμα Λογάριθμοι Για κάθε ακέραιο k ≥ 1, log k n = O(n)

2-37 Σφιχτό Ασυμπτωτικό Άνω Όριο Ας θεωρήσουμε τη συνάρτηση f(n) όπου f(n) = O(g(n)). Εάν για κάθε συνάρτηση h(n) τέτοια ώστε f(n) = O(h(n)) είναι επίσης αληθές ότι g(n) = O(h(n)), τότε λέμε ότι η g(n) είναι ένα σφιχτό ασυμτωτικό άνω όριο της συνάρτησης f(n).

2-38 Κοινά Λάθη / Παρανοήσεις Δεδομένου ότι εάν f 1 (n) = O(g(n)) και f 2 (n) = O(g(n)), τότε f 1 (n) = f 2 (n). (ΛΑΘΟΣ) Εάν f(n) = O(g(n)), τότε g(n) = O -1 (f(n)) (ΛΑΘΟΣ)

2-39 Κοινά Λάθη / Παρανοήσεις Big Oh - Επακόλουθο –Δεδομένων των μη αρνητικών συναρτήσεων f 1 (n), f 2 (n), g 1 (n), και g 2 (n), τέτοιων ώστε f 1 (n) = O(g 1 (n)), f 2 (n) = O(g 2 (n)), και δεδομένου ότι για κάθε ακέραιο n ≥ 0, g 1 (n) < g 2 (n), τότε f 1 (n) < f 2 (n). (ΛΑΘΟΣ) Πολλαπλασιαστικός Παράγων –Δεδομένων των μη αρνητικών συναρτήσεων f(n), g 1 (n), και g 2 (n), τέτοιων ώστε f(n) = g 1 (n) × g 2 (n) και f(n) ≤ cg 1 (n) για όλους τους ακεραίους n ≥ 0, τότε εάν θεωρήσουμε c = g 2 (n), τότε f(n) = O(g 1 (n)). (ΛΑΘΟΣ) Ολική Διάταξη –Δεδομένων δύο μη αρνητικών συναρτήσεων f(n) and g(n) τότε είτε ισχύει f(n) = O(g(n)) ή g(n) = O(f(n)). (ΛΑΘΟΣ)

2-40 Σύμβαση για τη Παρουσίαση Ασυμπτωτικού Άνω Ορίου Κρατάμε μόνο τους πλέον σημαντικούς όρους – π.χ αντί να γράψουμε O(n 2 +n log n+n), γράφουμε O(n 2 ) Απαλείφουμε τους σταθερούς όρους – Αντί να γράψουμε O(3n 2 ), γράφουμε O(n 2 ) – Αντί να γράψουμε O(1204), γράφουμε O(1)

2-41

2-42 Ασυμπτωτικό Κάτω Όριο — Omega Εάν θεωρήσουμε τη συνάρτηση f(n) η οποία είναι μη αρνητική για όλους τους ακεραίους n ≥ 0. Λέμε ότι η “f(n) είναι omega g(n),” και γράφουμε f(n) =  (g(n)), εάν υπάρχει ακέραιος n 0 και μια σταθερά c > 0 τέτοια ώστε για κάθε ακέραιο n ≥ n 0, f(n) ≥ cg(n).

2-43

2-44

2-45 Κανόνες Ασυμπτωτικής Ανάλυσης — Ακολουθιακή Σύνδεση εντολών (προγραμμάτων) Ο χειρότερος δυνατός χρόνος εκτέλεσης μιας ακολουθίας εντολών με χαρακτηριστικά S 1 ; // t 1 =O(T 1 (n)) S 2 ; // t 2 =O(T 2 (n))..... S m // t m =O(T m (n)) Είναι O(max(T 1 (n), T 2 (n),..., T m (n)))

2-46 Κανόνες Ασυμπτωτικής Ανάλυσης — Εντολές Επανάληψης Ο χειρότερος δυνατός χρόνος εκτέλεσης ενός βρόγχου με χαρακτηριστικά for (S 1 ; S 2 ; S 3 ) // O(T 1 (n)),O(T 2 (n)),O(T 3 (n)) S 4 ; // O(T 4 (n)) είναι O(max T 1 (n), T 2 (n) x (I(n) +1), T 3 (n) x I(n), T 4 (n) x I(n)), όπου I(n) είναι ο αριθμός των επαναλήψεων στο βρόγχο που εκτελούνται στη χειρότερη περίπτωση

2-47 Κανόνες Ασυμπτωτικής Ανάλυσης — Εντολή Επιλογής Ο χειρότερος δυνατός χρόνος εκτέλεσης μιας εντολής επιλογής if-then-else με χαρακτηριστικά if (S1) // O(T 1 (n)) S2; // O(T 2 (n)) else S3; // O(T 3 (n)) είναι O(max T 1 (n), T 2 (n), T 3 (n))

2-48 Πόσες φορές εκτελείται ο εσωτερικός βρόγχος? Παράδειγμα

2-49 Στη πράξη είναι: Σ j=0 j+1 = Σ j=1 j = n(n+1)/2 nn

2-50 O() Λάθη Ανάλυσης: Υπερεκτίμηση - Overestimation

2-51 Μια Πιο Προσεκτική Ανάλυση Ας θυμηθούμε ότι υπάρχουν n διαφορετικοί αριθμοί στο αρχικό διάνυσμα που έχει μεγέθος m. Στη γραμμή12, κατά τη j th επανάληψη του εξωτερικού βρόγχου, ο εσωτερικός βρόγχος κάνει bucket[j] επαναλήψεις και bucket[j]+1 ελέγχους. Συνεπώς ο συνολικός αριθμός ελέγχων είναι: Σ (bucket[j] +1) = Σ bucket[j] + Σ 1 = n+m j=0 m-1 j=0 m-1

2-52

2-53

2-54 Έλεγχος των Αποτελεσμάτων της Ασυμπτωτικής Ανάλυσης Πως επαληθεύουμε ότι ο αλγόριθμός μας εκτελείται σύμφωνα με τα χαρακτηριστικά της ανάλυση της ασυμπτωτικής μας ανάλυσης? Τρέχουμε πειράματα : –Γράφουμε ένα πρόγραμμα που υλοποιεί τον αλγόριθμο –Μετράμε το χρόνο εκτέλεσης του προγράμματος για διαφορετικές τιμές της παραμέτρου(ων) n –Πρόβλημα: Θα πρέπει να υπολογίσουμε τον αντίκτυπο που έχει στο χρόνο εκτέλεσης του προγράμματος η διαδικασία garbage collection Θα πρέπει επίσης να υπολογίσουμε τον αντίκτυπο που έχει στο χρόνο εκτέλεσης του προγράμματος η εκτέλεση άλλων διαδικασιών (προγραμμάτων) από άλλους χρήστες στον ίδιο υπολογιστή που τρέχει το πρόγραμμά μας

2-55 Έλεγχος Αναλογίας Ας θυμηθούμε το κανόνα του ορίου Για παράδειγμα, ας υποθέσουμε ότι έχουμε υπολογίσει με τη ανάλυση μας ότι T(n) = O(f(n)) και έχουμε πειραματικές τιμές για τη T(n) Εάν υπολογίσουμε το λόγο T(n)/f(n) για κάθε τιμή του n με την οποία έχουμε πειραματιστεί και παρατηρήσουμε τι συμβαίνει όσο η τιμή του n αυξάνεται: Εάν ο λόγος T(n)/f(n) –Αποκλίνει, τότε η f(n) είναι πολύ μικρή –Συγκλίνει στο 0, τότε η f(n) είναι πού μεγάλη –Συγκλίνει σε μια μη μηδενική τιμή τότε η εκτίμηση ότι T(n) = O( f(n)) είναι σωστή

2-56 Τι συμβαίνει όταν η ανάλυση μας δίνει μεγάλο όριο? Είτε το αποτέλεσμα δεν είναι σφιχτό όριο Είτε η ανάλυση έγινε για τη χειρότερη περίπτωση αλλά η χειρότερη περίπτωση δεν προέκυψε κατά τη διάρκεια των πειραμάτων Είτε κάναμε κάποιο λάθος και η ανάλυσή μας δεν είναι σωστή