Αντισταθμιστική ανάλυση

Σχετικά έγγραφα
Ισορροπημένα Δένδρα. για κάθε λειτουργία; Ισορροπημένο δένδρο : Διατηρεί ύψος κάθε εισαγωγή ή διαγραφή

Ισορροπημένα Δένδρα. για κάθε λειτουργία; Ισορροπημένο δένδρο : Διατηρεί ύψος κάθε εισαγωγή ή διαγραφή

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

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

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

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

Δυναμικοί πίνακες. Πνιιέο δνκέο δεδνκέλσλ πινπνηνύληαη κε ρξήζε πηλάθσλ. π.ρ. Σηνίβεο. α β γ δ. tail. head % N. Οπξέο Ν-1. θάησ όξην.

Εισαγωγή ενός νέου στοιχείου. Επιλογή i-οστoύ στοιχείου : Εύρεση στοιχείου με το i-οστό μικρότερο κλειδί

Συνδετικότητα γραφήματος (graph connectivity)

Δομές Δεδομένων και Αλγόριθμοι. Λουκάς Γεωργιάδης

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

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Διαχρονικές δομές δεδομένων

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

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

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

επιστρέφει το αμέσως μεγαλύτερο από το x στοιχείο του S επιστρέφει το αμέσως μικρότερο από το x στοιχείο του S

Τεχνικές Επιμερισμένης Ανάλυσης

Δένδρα Αναζήτησης Πολλαπλής Διακλάδωσης

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

Συλλογές, Στοίβες και Ουρές

ΚΕΦΑΛΑΙΟ 8: Αφαίρεση δεδοµένων

Κεφάλαιο 14 Προηγμένες Ουρές Προτεραιότητας

Πίνακες Συμβόλων. εισαγωγή αναζήτηση επιλογή. εισαγωγή. αναζήτηση

Στοίβες με Δυναμική Δέσμευση Μνήμης

Οι βασικές λειτουργίες (ή πράξεις) που γίνονται σε μια δομή δεδομένων είναι:

Επιλογές και Κριτήρια Σχεδιασμού ΑΤΔ Ανεξαρτήτως από Γλώσσα Υλοποίησης 24/4/2012

Δυναμικά Σύνολα. Δυναμικό σύνολο. Tα στοιχεία του μεταβάλλονται μέσω εντολών εισαγωγής και διαγραφής. διαγραφή. εισαγωγή

Δομές Αναζήτησης. εισαγωγή αναζήτηση επιλογή. εισαγωγή. αναζήτηση

Δομές Δεδομένων Standard Template Library (STL) 23/3/2017 ΜΠΟΜΠΟΤΑΣ ΑΓΟΡΑΚΗΣ

Standard Template Library (STL) C++ library

Κατακερματισμός (Hashing)

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

Οργάνωση αρχείων: πως είναι τοποθετηµένες οι εγγραφές ενός αρχείου όταν αποθηκεύονται στο δίσκο

Οι λίστες, χάνοντας τα πλεονεκτήματα των πινάκων, λύνουν προβλήματα που παρουσιάζουν οι πίνακες

Κατακερµατισµός. Οργάνωση Αρχείων (σύνοψη) Οργάνωση αρχείων: πως είναι τοποθετημένες οι εγγραφές ενός αρχείου όταν αποθηκεύονται στο δίσκο

Οι δυναμικές δομές δεδομένων στην ΑΕΠΠ

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

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

Δυναμικά Σύνολα. Δυναμικό σύνολο. Tα στοιχεία του μεταβάλλονται μέσω εντολών εισαγωγής και διαγραφής. διαγραφή. εισαγωγή

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

Δυναμικά Σύνολα. Δυναμικό σύνολο. Tα στοιχεία του μεταβάλλονται μέσω εντολών εισαγωγής και διαγραφής. διαγραφή. εισαγωγή

Τα δεδομένα (περιεχόμενο) μιας βάσης δεδομένων αποθηκεύεται στο δίσκο

Διάλεξη 22: Τεχνικές Κατακερματισμού I (Hashing)

13/5/2015 ΟΥΡΕΣ ΠΡΟΤΕΡΑΙΟΤΗΤΑΣ. Δομές Δεδομένων. Ουρές Προτεραιότητας

Σύνοψη Προηγούμενου. Λίστες (Lists) Συνδεδεμένες Λίστες: Εισαγωγή (1/2) Συνδεδεμένες Λίστες. Ορέστης Τελέλης

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

Κατηγορίες Συμπίεσης. Συμπίεση με απώλειες δεδομένων (lossy compression) π.χ. συμπίεση εικόνας και ήχου

ΕΥΡΕΣΗ ΜΕΓΙΣΤΟΥ ΚΟΙΝΟΥ ΔΙΑΙΡΕΤΗ

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

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

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

Βασικές δοµές δεδοµένων. Ορολογία λιστών. 8.1 Βασικές έννοιες δοµών δεδοµένων 8.2 Υλοποίηση δοµών δεδοµένων 8.3 Μια σύντοµη υπόθεση εργασίας

ΕΝΟΤΗΤΑ 9 ΕΝΩΣΗ ΞΕΝΩΝ ΣΥΝΟΛΩΝ ( ΟΜΕΣ UNION-FIND)

ΟΥΡΕΣ ΠΡΟΤΕΡΑΙΟΤΗΤΑΣ

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

Δυναμικός Κατακερματισμός

Τεχνικές Επιμερισμένης Ανάλυσης

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

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

Κεφάλαιο 6 Ουρές Προτεραιότητας

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

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

Διάλεξη 16: Σωροί. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Ουρές Προτεραιότητας - Ο ΑΤΔ Σωρός, Υλοποίηση και πράξεις

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

Άμεσοι Αλγόριθμοι: Προσπέλαση Λίστας (list access)

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

Διάλεξη 23: Τεχνικές Κατακερματισμού II (Hashing)

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

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

viii 20 Δένδρα van Emde Boas 543

Αναζήτηση σε Γράφους. Μανόλης Κουμπαράκης. ΥΣ02 Τεχνητή Νοημοσύνη 1

Ουρές Προτεραιότητας: Υπενθύμιση. Σωροί / Αναδρομή / Ταξινόμηση. Υλοποίηση Σωρού. Σωρός (Εισαγωγή) Ορέστης Τελέλης

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

Μέγιστη ροή. Κατευθυνόμενο γράφημα. Συνάρτηση χωρητικότητας. αφετηρίακός κόμβος. τερματικός κόμβος. Ροή δικτύου. με τις ακόλουθες ιδιότητες

Ο ΑΤΔ Λεξικό. Σύνολο στοιχείων με βασικές πράξεις: Δημιουργία Εισαγωγή Διαγραφή Μέλος. Υλοποιήσεις

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

Γράφημα. Συνδυαστικό αντικείμενο που αποτελείται από 2 σύνολα: Σύνολο κορυφών (vertex set) Σύνολο ακμών (edge set) 4 5 πλήθος κορυφών πλήθος ακμών

ΠΛΗ21 Κεφάλαιο 2. ΠΛΗ21 Ψηφιακά Συστήματα: Τόμος Α Κεφάλαιο: Παράσταση Προσημασμένων Αριθμών Συμπληρώματα

Αριθμήσιμα σύνολα. Μαθηματικά Πληροφορικής 5ο Μάθημα. Παραδείγματα αριθμήσιμων συνόλων. Οι ρητοί αριθμοί

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

Διάλεξη 16: Σωροί. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Ουρές Προτεραιότητας - Ο ΑΤΔ Σωρός, Υλοποίηση και πράξεις

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

Κεφάλαιο 2. Η δομή δεδομένων Σωρός και η Ταξινόμηση Σωρού (The Heap data structure and Heapsort) Έκδοση 1.3, 14/11/2014

Τύποι Δεδομένων και Απλές Δομές Δεδομένων. Παύλος Εφραιμίδης V1.0 ( )

8.6 Κλάσεις και αντικείμενα 8.7 Δείκτες σε γλώσσα μηχανής

Οδηγός Ασκήσεων Υποδικτύωσης

Δυαδικά Δέντρα Αναζήτησης (Binary Search Trees) Ορισμός : Ένα δυαδικό δέντρο αναζήτησης t είναι ένα δυαδικό δέντρο, το οποίο είτε είναι κενό είτε:

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

ΟιβασικέςπράξειςπουορίζουντονΑΤΔ δυαδικό δέντρο αναζήτησης είναι οι ακόλουθες:

Διάλεξη 12: Λίστες Υλοποίηση & Εφαρμογές. Διδάσκων: Παναγιώτης Ανδρέου

Αφηρημένες Δομές Δεδομένων. Στοίβα (Stack) Υλοποίηση στοίβας

Πελάτες φθάνουν στο ταμείο μιας τράπεζας Eνα μόνο ταμείο είναι ανοικτό Κάθε πελάτης παρουσιάζεται με ένα νούμερο - αριθμός προτεραιότητας Όσο ο

Ενότητα 3: ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ

Λύσεις Παλιών Θεµάτων. Συστήµατα Παράλληλης Επεξεργασίας, 9ο εξάµηνο Υπεύθ. Καθ. Νεκτάριος Κοζύρης

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

Ενότητες 3 & 4: Δένδρα, Σύνολα & Λεξικά Ασκήσεις και Λύσεις

ΚΕΦΑΛΑΙΟ 3 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ

Σχεδιαση Αλγοριθμων -Τμημα Πληροφορικης ΑΠΘ - Κεφαλαιο 9ο

Transcript:

Αντισταθμιστική ανάλυση Θεωρήστε έναν αλγόριθμο Α που χρησιμοποιεί μια δομή δεδομένων Δ : Κατά τη διάρκεια εκτέλεσης του Α η Δ πραγματοποιεί μία ακολουθία από πράξεις. Παράδειγμα: Θυμηθείτε το πρόβλημα της εύρεσης-ένωσης Είχαμε δει τη δομή «σταθμισμένης ένωσης με συμπίεση διαδρομής» 1 4 4 2 3 6 5 ένωση(3,6) 1 6 5 8 2 3 8 4 4 1 6 5 εύρεση(2) 2 1 6 5 2 3 8 3 8

Αντισταθμιστική ανάλυση Θεωρήστε έναν αλγόριθμο Α που χρησιμοποιεί μια δομή δεδομένων Δ : Κατά τη διάρκεια εκτέλεσης του Α η Δ πραγματοποιεί μία ακολουθία από πράξεις. Παράδειγμα: Θυμηθείτε το πρόβλημα της εύρεσης-ένωσης Είχαμε δει τη δομή «σταθμισμένης ένωσης με συμπίεση διαδρομής» Χρόνος χειρότερης περίπτωσης για μία πράξη εύρεσης ή ένωσης = 1 2 3 5 9 4 6 1 11 13 ύψος 8 12 14 15 16

Αντισταθμιστική ανάλυση Θεωρήστε έναν αλγόριθμο Α που χρησιμοποιεί μια δομή δεδομένων Δ : Κατά τη διάρκεια εκτέλεσης του Α η Δ πραγματοποιεί μία ακολουθία από πράξεις. Παράδειγμα: Θυμηθείτε το πρόβλημα της εύρεσης-ένωσης Είχαμε δει τη δομή «σταθμισμένης ένωσης με συμπίεση διαδρομής» Χρόνος χειρότερης περίπτωσης για μία πράξη εύρεσης ή ένωσης = Αλλά : Συνολικός χρόνος εκτέλεσης m πράξεων εύρεσης-ένωσης = Μέσος χρόνος εκτέλεσης για μία πράξη εύρεσης ή ένωσης =

Συνάρτηση Ackerman Η συνάρτηση Ackerman ορίζεται ως εξής Η συνάρτηση είναι αντίστροφη της αυξάνει με πάρα πολύ αργό ρυθμό! Π.χ. για

Αντισταθμιστική ανάλυση Θεωρήστε έναν αλγόριθμο Α που χρησιμοποιεί μια δομή δεδομένων Δ : Κατά τη διάρκεια εκτέλεσης του Α η Δ πραγματοποιεί μία ακολουθία από πράξεις. Έστω το κόστος μίας πράξης στη χειρότερη περίπτωση Τότε ο συνολικός χρόνος για πράξεις είναι

Αντισταθμιστική ανάλυση Θεωρήστε έναν αλγόριθμο Α που χρησιμοποιεί μια δομή δεδομένων Δ : Κατά τη διάρκεια εκτέλεσης του Α η Δ πραγματοποιεί μία ακολουθία από πράξεις. Έστω το κόστος μίας πράξης στη χειρότερη περίπτωση Τότε ο συνολικός χρόνος για Ωστόσο σε κάποιες περιπτώσεις: πράξεις είναι Κάθε πράξη μπορεί να έχει διαφορετικό κόστος ανάλογα με την στιγμή που εκτελείται. Το κόστος μίας πράξης στη χειρότερη περίπτωση μπορεί να είναι πολύ μεγάλο. Αλλά το μέσο κόστος ανά πράξη σε οποιαδήποτε ακολουθία πράξεων μπορεί να είναι αρκετά μικρότερο.

Αντισταθμιστική ανάλυση Θεωρήστε έναν αλγόριθμο Α που χρησιμοποιεί μια δομή δεδομένων Δ : Κατά τη διάρκεια εκτέλεσης του Α η Δ πραγματοποιεί μία ακολουθία από πράξεις. Έστω το κόστος μίας πράξης στη χειρότερη περίπτωση Τότε ο συνολικός χρόνος για Ωστόσο σε κάποιες περιπτώσεις: πράξεις είναι Κάθε πράξη μπορεί να έχει διαφορετικό κόστος ανάλογα με την στιγμή που εκτελείται. Το κόστος μίας πράξης στη χειρότερη περίπτωση μπορεί να είναι πολύ μεγάλο. Αλλά το μέσο κόστος ανά πράξη σε οποιαδήποτε ακολουθία πράξεων μπορεί να είναι αρκετά μικρότερο. Αντισταθμιστική ανάλυση: λαμβάνουμε το μέσο κόστος εκτέλεσης μίας πράξης όταν εκτελούμε μία ακολουθία πράξεων χειρότερης περίπτωσης

Αντισταθμιστική ανάλυση Απλά παραδείγματα: Διαχείριση στοίβας x push(s,x) : τοποθετεί το x στην κορυφή της στοίβας S

Αντισταθμιστική ανάλυση Απλά παραδείγματα: Διαχείριση στοίβας push(s,x) : τοποθετεί το x στην κορυφή της στοίβας S pop(s) : αφαιρεί από τη στοίβα S το στοιχείο στην κορυφή της

Αντισταθμιστική ανάλυση Απλά παραδείγματα: Διαχείριση στοίβας push(s,x) : τοποθετεί το x στην κορυφή της στοίβας S pop(s) : αφαιρεί από τη στοίβα S το στοιχείο στην κορυφή της multipop(s,k) : αφαιρεί από τη στοίβα S τα k πρώτα στοιχεία στην κορυφή της k=2

Αντισταθμιστική ανάλυση Απλά παραδείγματα: Διαχείριση στοίβας χρόνος push(s,x) : τοποθετεί το x στην κορυφή της στοίβας S pop(s) : αφαιρεί από τη στοίβα S το στοιχείο στην κορυφή της multipop(s,k) : αφαιρεί από τη στοίβα S τα k πρώτα στοιχεία στην κορυφή της

Αντισταθμιστική ανάλυση Απλά παραδείγματα: Διαχείριση στοίβας χρόνος push(s,x) : τοποθετεί το x στην κορυφή της στοίβας S pop(s) : αφαιρεί από τη στοίβα S το στοιχείο στην κορυφή της multipop(s,k) : αφαιρεί από τη στοίβα S τα k πρώτα στοιχεία στην κορυφή της Ποιος είναι ο συνολικός χρόνος για μία ακολουθία από Ν πράξεις; ;

Αντισταθμιστική ανάλυση Απλά παραδείγματα: Διαχείριση στοίβας χρόνος push(s,x) : τοποθετεί το x στην κορυφή της στοίβας S pop(s) : αφαιρεί από τη στοίβα S το στοιχείο στην κορυφή της multipop(s,k) : αφαιρεί από τη στοίβα S τα k πρώτα στοιχεία στην κορυφή της Ποιος είναι ο συνολικός χρόνος για μία ακολουθία από Ν πράξεις; ; Πιο προσεκτική ανάλυση : Συνολικός χρόνος ανά πράξη

Αντισταθμιστική ανάλυση Απλά παραδείγματα: Επαύξηση δυαδικού μετρητή Έστω ένας μετρητής C με k bits : μια πράξη επαύξησης θέτει Κόστος επαύξησης = αριθμός των bits που αλλάζουν

Αντισταθμιστική ανάλυση Απλά παραδείγματα: Επαύξηση δυαδικού μετρητή Έστω ένας μετρητής C με k bits : μια πράξη επαύξησης θέτει Κόστος επαύξησης = αριθμός των bits που αλλάζουν επαύξηση κόστος = 1 1

Αντισταθμιστική ανάλυση Απλά παραδείγματα: Επαύξηση δυαδικού μετρητή Έστω ένας μετρητής C με k bits : μια πράξη επαύξησης θέτει Κόστος επαύξησης = αριθμός των bits που αλλάζουν 1 1 1 1 1 επαύξηση κόστος = 5 1 1

Αντισταθμιστική ανάλυση Απλά παραδείγματα: Επαύξηση δυαδικού μετρητή Έστω ένας μετρητής C με k bits : μια πράξη επαύξησης θέτει Κόστος επαύξησης = αριθμός των bits που αλλάζουν 1 1 1 1 1 1 1 1 επαύξηση κόστος = 8 χειρότερη περίπτωση!

Αντισταθμιστική ανάλυση Απλά παραδείγματα: Επαύξηση δυαδικού μετρητή Έστω ένας μετρητής C με k bits : μια πράξη επαύξησης θέτει Κόστος επαύξησης = αριθμός των bits που αλλάζουν = στη χειρότερη περίπτωση Συνολικό κόστος για N επαυξήσεις =

Αντισταθμιστική ανάλυση Απλά παραδείγματα: Επαύξηση δυαδικού μετρητή Έστω ένας μετρητής C με k bits : μια πράξη επαύξησης θέτει Κόστος επαύξησης = αριθμός των bits που αλλάζουν = στη χειρότερη περίπτωση Συνολικό κόστος για N επαυξήσεις = Βελτιωμένη ανάλυση : συνολικό κόστος = Δηλαδή αντισταθμιστικό κόστος ανά πράξη = (κατά μέσο όρο σταθερό κόστος ανά επαύξηση)

Αντισταθμιστική ανάλυση Απλά παραδείγματα: Επαύξηση δυαδικού μετρητή Έστω ένας μετρητής C με k bits : μια πράξη επαύξησης θέτει Κόστος επαύξησης = αριθμός των bits που αλλάζουν = στη χειρότερη περίπτωση Συνολικό κόστος για N επαυξήσεις = Βελτιωμένη ανάλυση : συνολικό κόστος = Δηλαδή αντισταθμιστικό κόστος ανά πράξη = (κατά μέσο όρο σταθερό κόστος ανά επαύξηση) Ξεκινώντας με μηδενισμένο μετρητή

Αντισταθμιστική ανάλυση Απλά παραδείγματα: Επαύξηση δυαδικού μετρητή Έστω ένας μετρητής C με k bits : μια πράξη επαύξησης θέτει 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

Αντισταθμιστική ανάλυση Απλά παραδείγματα: Επαύξηση δυαδικού μετρητή Έστω ένας μετρητής C με k bits : μια πράξη επαύξησης θέτει 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ο ψηφίο από το τέλος: αλλάζει με κάθε επαύξηση

Αντισταθμιστική ανάλυση Απλά παραδείγματα: Επαύξηση δυαδικού μετρητή Έστω ένας μετρητής C με k bits : μια πράξη επαύξησης θέτει 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 ο ψηφίο από το τέλος: αλλάζει με κάθε δεύτερη επαύξηση

Αντισταθμιστική ανάλυση Απλά παραδείγματα: Επαύξηση δυαδικού μετρητή Έστω ένας μετρητής C με k bits : μια πράξη επαύξησης θέτει 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 ο ψηφίο από το τέλος: αλλάζει με κάθε τέταρτη επαύξηση

Αντισταθμιστική ανάλυση Απλά παραδείγματα: Επαύξηση δυαδικού μετρητή Έστω ένας μετρητής C με k bits : μια πράξη επαύξησης θέτει 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 4 ο ψηφίο από το τέλος: αλλάζει με κάθε όγδοη επαύξηση

Αντισταθμιστική ανάλυση Απλά παραδείγματα: Επαύξηση δυαδικού μετρητή Έστω ένας μετρητής C με k bits : μια πράξη επαύξησης θέτει Γενικά το i-οστό ψηφίο από το τέλος αλλάζει μετά από επαυξήσεις. Σε ακολουθία N πράξεων το i-οστό ψηφίο από το τέλος αλλάζει συνολικά φορές Σύνολο αλλαγών για όλα τα ψηφία =

Αντισταθμιστική ανάλυση Απλά παραδείγματα: Επαύξηση δυαδικού μετρητή Έστω ένας μετρητής C με k bits : μια πράξη επαύξησης θέτει Γενικά το i-οστό ψηφίο από το τέλος αλλάζει μετά από επαυξήσεις. Σε ακολουθία N πράξεων το i-οστό ψηφίο από το τέλος αλλάζει συνολικά φορές Σύνολο αλλαγών για όλα τα ψηφία =

Αντισταθμιστική ανάλυση Απλά παραδείγματα: Επαύξηση δυαδικού μετρητή Έστω ένας μετρητής C με k bits : μια πράξη επαύξησης θέτει Γενικά το i-οστό ψηφίο από το τέλος αλλάζει μετά από επαυξήσεις. Σε ακολουθία N πράξεων το i-οστό ψηφίο από το τέλος αλλάζει συνολικά φορές Σύνολο αλλαγών για όλα τα ψηφία = Αντισταθμιστικό κόστος ανά πράξη =

Αντισταθμιστική ανάλυση Μέθοδοι Αντισταθμιστικής Ανάλυσης Αθροιστική μέθοδος Χρεωπιστωτική μέθοδος Ενεργειακή μέθοδος

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

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

Αντισταθμιστική ανάλυση Χρεωπιστωτική μέθοδος (Η μέθοδος του τραπεζίτη) Παράδειγμα: Διαχείριση στοίβας κόστος push(s,x) : τοποθετεί το x στην κορυφή της στοίβας S pop(s) : αφαιρεί από τη στοίβα S το στοιχείο στην κορυφή της multipop(s,k) : αφαιρεί από τη στοίβα S τα k πρώτα στοιχεία στην κορυφή της

Αντισταθμιστική ανάλυση Χρεωπιστωτική μέθοδος (Η μέθοδος του τραπεζίτη) Παράδειγμα: Διαχείριση στοίβας push(s,x) : τοποθετεί το x στην κορυφή της στοίβας S κόστος πίστωση pop(s) : αφαιρεί από τη στοίβα S το στοιχείο στην κορυφή της multipop(s,k) : αφαιρεί από τη στοίβα S τα k πρώτα στοιχεία στην κορυφή της Πρέπει να δείξουμε ότι οι πιστώσεις αρκούν για να αποπληρώσουν οποιαδήποτε ακολουθία πράξεων.

Αντισταθμιστική ανάλυση Χρεωπιστωτική μέθοδος (Η μέθοδος του τραπεζίτη) Παράδειγμα: Διαχείριση στοίβας push(s,x) : τοποθετεί το x στην κορυφή της στοίβας S κόστος πίστωση pop(s) : αφαιρεί από τη στοίβα S το στοιχείο στην κορυφή της multipop(s,k) : αφαιρεί από τη στοίβα S τα k πρώτα στοιχεία στην κορυφή της push(s,x) x 1 1 Από τις δύο πιστώσεις η μία πληρώνει την τοποθέτηση και η άλλη αποθηκεύεται στο x

Αντισταθμιστική ανάλυση Χρεωπιστωτική μέθοδος (Η μέθοδος του τραπεζίτη) Παράδειγμα: Διαχείριση στοίβας push(s,x) : τοποθετεί το x στην κορυφή της στοίβας S κόστος πίστωση pop(s) : αφαιρεί από τη στοίβα S το στοιχείο στην κορυφή της multipop(s,k) : αφαιρεί από τη στοίβα S τα k πρώτα στοιχεία στην κορυφή της pop/multipop 1 Κάθε αντικείμενο στην S κρατά μία μονάδα πίστωσης. Έτσι αποπληρώνεται η απομάκρυνση του αντικειμένου.

Αντισταθμιστική ανάλυση Χρεωπιστωτική μέθοδος (Η μέθοδος του τραπεζίτη) Παράδειγμα: Επαύξηση δυαδικού μετρητή κόστος πίστωση αλλαγή bit από σε 1 αλλαγή bit από 1 σε

Αντισταθμιστική ανάλυση Χρεωπιστωτική μέθοδος (Η μέθοδος του τραπεζίτη) Παράδειγμα: Επαύξηση δυαδικού μετρητή κόστος πίστωση αλλαγή bit από σε 1 αλλαγή bit από 1 σε 1 επαύξηση 1 Κάθε bit με τιμή 1 έχει μία μονάδα πίστωσης

Αντισταθμιστική ανάλυση Χρεωπιστωτική μέθοδος (Η μέθοδος του τραπεζίτη) Παράδειγμα: Επαύξηση δυαδικού μετρητή κόστος πίστωση αλλαγή bit από σε 1 αλλαγή bit από 1 σε 1 1 1 1 1 Κάθε bit με τιμή 1 έχει μία μονάδα πίστωσης

Αντισταθμιστική ανάλυση Χρεωπιστωτική μέθοδος (Η μέθοδος του τραπεζίτη) Παράδειγμα: Επαύξηση δυαδικού μετρητή κόστος πίστωση αλλαγή bit από σε 1 αλλαγή bit από 1 σε 1 1 1 1 1 1 επαύξηση 1 1 1 1 1 1 Κάθε bit με τιμή 1 έχει μία μονάδα πίστωσης

Αντισταθμιστική ανάλυση Ενεργειακή μέθοδος (Η μέθοδος του φυσικού) Αποδίδουμε στη δομή δεδομένων ένα δυναμικό («δυναμική ενέργεια»). όπου δυναμικό δομής δεδομένων D Έστω η αρχική δομή δεδομένων και η δομή μετά την i-οστη πράξη. Επίσης, έστω το κόστος της i-οστής πράξης. Αντισταθμιστικό κόστος i-οστής πράξης : Συνολικό αντισταθμιστικό κόστος για N πράξεις : Θέλουμε έτσι ώστε

Αντισταθμιστική ανάλυση Ενεργειακή μέθοδος (Η μέθοδος του φυσικού) Αντισταθμιστικό κόστος i-οστής πράξης : Ερμηνεία : αν αν η δομή συγκεντρώνει δυναμικό και τότε η δομή χάνει δυναμικό και Δηλαδή το κόστος μιας ακριβής πράξης αποπληρώνεται από τη διαφορά δυναμικού

Αντισταθμιστική ανάλυση Ενεργειακή μέθοδος (Η μέθοδος του φυσικού) Συνολικό αντισταθμιστικό κόστος για N πράξεις : Θέλουμε έτσι ώστε Προσοχή: Επειδή μπορεί να μη γνωρίζουμε το πλήθος των πράξεων Ν απαιτούμε να ισχύει για κάθε i=1,2,,n

Αντισταθμιστική ανάλυση Ενεργειακή μέθοδος (Η μέθοδος του φυσικού) Παράδειγμα: Διαχείριση στοίβας Επιλέγουμε αριθμός αντικειμένων στη στοίβα S Για αρχικά κενή στοίβα έχουμε για κάθε i=1,2,,n για κάθε i=1,2,,n Επομένως το συνολικό αντισταθμιστικό κόστος αποτελεί άνω φράγμα του συνολικού πραγματικού κόστους.

Αντισταθμιστική ανάλυση Ενεργειακή μέθοδος (Η μέθοδος του φυσικού) Παράδειγμα: Διαχείριση στοίβας Επιλέγουμε αριθμός αντικειμένων στη στοίβα S Μένει να υπολογίσουμε το αντισταθμιστικό κόστος για κάθε τύπο πράξης Έστω ότι η i-οστή πράξη είναι τύπου push : push(s,x) : τοποθετεί το x στην κορυφή της στοίβας S Έχουμε και, επομένως

Αντισταθμιστική ανάλυση Ενεργειακή μέθοδος (Η μέθοδος του φυσικού) Παράδειγμα: Διαχείριση στοίβας Επιλέγουμε αριθμός αντικειμένων στη στοίβα S Μένει να υπολογίσουμε το αντισταθμιστικό κόστος για κάθε τύπο πράξης Έστω ότι η i-οστή πράξη είναι τύπου pop : pop(s) : αφαιρεί από τη στοίβα S το στοιχείο στην κορυφή της Έχουμε και, επομένως

Αντισταθμιστική ανάλυση Ενεργειακή μέθοδος (Η μέθοδος του φυσικού) Παράδειγμα: Διαχείριση στοίβας Επιλέγουμε αριθμός αντικειμένων στη στοίβα S Μένει να υπολογίσουμε το αντισταθμιστικό κόστος για κάθε τύπο πράξης Έστω ότι η i-οστή πράξη είναι τύπου multipop : multipop(s,k) : αφαιρεί από τη στοίβα S τα πρώτα k στοιχεία στην κορυφή της Έχουμε και,, επομένως

Αντισταθμιστική ανάλυση Ενεργειακή μέθοδος (Η μέθοδος του φυσικού) Παράδειγμα: Επαύξηση δυαδικού μετρητή Επιλέγουμε αριθμός bit με τιμή 1 Για αρχικά μηδενισμένο μετρητή έχουμε για κάθε i=1,2,,n για κάθε i=1,2,,n Επομένως το συνολικό αντισταθμιστικό κόστος αποτελεί άνω φράγμα του συνολικού πραγματικού κόστους.

Αντισταθμιστική ανάλυση Ενεργειακή μέθοδος (Η μέθοδος του φυσικού) Παράδειγμα: Επαύξηση δυαδικού μετρητή Επιλέγουμε αριθμός bit με τιμή 1 Μένει να υπολογίσουμε το αντισταθμιστικό κόστος Έστω και Επίσης, έστω ότι η i-οστή πράξη μηδενίζει bit. Έχουμε και, επομένως

Αντισταθμιστική ανάλυση Ενεργειακή μέθοδος (Η μέθοδος του φυσικού) Παράδειγμα: Επαύξηση δυαδικού μετρητή Επιλέγουμε αριθμός bit με τιμή 1 Aν έχουμε και Επομένως αν πραγματοποιήσουμε πραγματικό κόστος είναι επαυξήσεις τότε το συνολικό ανεξάρτητα από την αρχική τιμή

Δυναμικοί πίνακες Πολλές δομές δεδομένων υλοποιούνται με χρήση πινάκων π.χ. Στοίβες κάτω όριο α β γ δ τρέχουσα κορυφή άνω όριο Ουρές 5 Ν-1 tail 1 2 head % N 4 3

Δυναμικοί πίνακες Πολλές δομές δεδομένων υλοποιούνται με χρήση πινάκων π.χ. Ουρές Προτεραιότητας Αναπαράσταση ως πλήρες δυαδικό δένδρο: κάθε κόμβος έχει κλειδί μικρότερο ή ίσο με το κλειδί του γονέα του. [1] 2 η ρίζα έχει το μέγιστο κλειδί. [2] [3] 18 12 ύψος lgn [8] [4] [5] 11 15 [9] [1] 4 2 13 [11] [6] 6 9 [12] 5 [] Υλοποίηση με πίνακα: το στοιχείο στη θέση i είναι ο γονέας των στοιχείων στις θέσεις 2i και 2i+1. [1] [2] [3] [4] [5] [6] [] [8] [9] [1] [11] [12] 2 18 12 11 15 9 5 4 2 13 6

Δυναμικοί πίνακες Πολλές δομές δεδομένων υλοποιούνται με χρήση πινάκων π.χ. Πίνακες Διασποράς (Πίνακες Κατακερματισμού) T U K k 2 k 1 k 3 m-1

Δυναμικοί πίνακες Πολλές δομές δεδομένων υλοποιούνται με χρήση πινάκων Πίνακες στη C Δυναμική κατανομή μνήμης void initialize(int *a, int N) { *a = malloc(n*sizeof(int)); for (i=; i<n; i++) a[i]=; } void main() { int *a; initialize(a,ν); }

Δυναμικοί πίνακες Πολλές δομές δεδομένων υλοποιούνται με χρήση πινάκων Πίνακες στη C Δυναμική κατανομή μνήμης void initialize(int *a, int N) { *a = malloc(n*sizeof(int)); for (i=; i<n; i++) a[i]=; } void main() { int *a; initialize(a,ν); } Τι γίνεται αν δε γνωρίζουμε εκ των προτέρων τη τιμή του N;

Δυναμικοί πίνακες T k 4 k k 6 k 2 k 1 k 3 k 5

Δυναμικοί πίνακες T k 6 k 4 k ο πίνακας είναι γεμάτος k 2 k 8 k 1 k 3 k 5

Δυναμικοί πίνακες T k 6 k 4 k ο πίνακας είναι γεμάτος k 9 k 2 k 8 k 1 k 3 k 5

Δυναμικοί πίνακες T k 6 k 4 k ο πίνακας είναι γεμάτος k 9 k 2 k 8 k 1 k 3 k 5 Λύση : Δημιουργούμε ένα μεγαλύτερο πίνακα Τ και αντιγράφουμε τα στοιχεία του Τ. Τι μέγεθος πρέπει να έχει ο T ;

Δυναμικοί πίνακες Ακραία λύση 1: T T 8 νέο στοιχείο

Δυναμικοί πίνακες Ακραία λύση 1: T T αξιοποιούμε όλο το χώρο του Τ κάθε νέα εισαγωγή παίρνει Ο(n) χρόνο 8 νέο στοιχείο

Δυναμικοί πίνακες Ακραία λύση 2: T T εισαγωγή νέου στοιχείου σε Ο(1) χρόνο αξιοποιούμε ελάχιστο από το χώρο του Τ 8 νέο στοιχείο

Δυναμικοί πίνακες Ενδιάμεση λύση : T T εισαγωγή νέου στοιχείου σε αντισταθμιστικό Ο(1) χρόνο 8 αξιοποιούμε πάνω από το μισό χώρο του Τ νέο στοιχείο 15

Δυναμικοί πίνακες Ενδιάμεση λύση : Ανάλυση με την αθροιστική μέθοδο Το κόστος της i-οστής εισαγωγής είναι: όταν το i-1 είναι δύναμη του 2 διαφορετικά

Δυναμικοί πίνακες Ενδιάμεση λύση : Ανάλυση με την αθροιστική μέθοδο Το κόστος της i-οστής εισαγωγής είναι: όταν το i-1 είναι δύναμη του 2 διαφορετικά Επομένως για ακολουθία n εισαγωγών έχουμε συνολικό κόστος

Δυναμικοί πίνακες Ενδιάμεση λύση : Ανάλυση με την χρεωπιστωτική μέθοδο Σε κάθε πράξη εισαγωγής αποδίδουμε 3 μονάδες πίστωσης T 1 1 1 νέο στοιχείο

Δυναμικοί πίνακες Ενδιάμεση λύση : Ανάλυση με την χρεωπιστωτική μέθοδο Σε κάθε πράξη εισαγωγής αποδίδουμε 3 μονάδες πίστωσης T 1 1 1 νέο στοιχείο

Δυναμικοί πίνακες Ενδιάμεση λύση : Ανάλυση με την χρεωπιστωτική μέθοδο Σε κάθε πράξη εισαγωγής αποδίδουμε 3 μονάδες πίστωσης T 1 νέο στοιχείο 1 1

15 Δυναμικοί πίνακες Ενδιάμεση λύση : Ανάλυση με την χρεωπιστωτική μέθοδο Σε κάθε πράξη εισαγωγής αποδίδουμε 3 μονάδες πίστωσης πριν το διπλασιασμό του πίνακα κάθε θέση έχει 1 μονάδα πίστωσης T 1 1 1 1 1 1 1 1 T 8

15 Δυναμικοί πίνακες Ενδιάμεση λύση : Ανάλυση με την χρεωπιστωτική μέθοδο Σε κάθε πράξη εισαγωγής αποδίδουμε 3 μονάδες πίστωσης πριν το διπλασιασμό του πίνακα κάθε θέση έχει 1 μονάδα πίστωσης αποπληρώνει τη μετακίνηση του στοιχείου T 1 1 1 1 1 1 1 1 T 8 στον Τ δεν υπάρχει καμία πίστωση

15 Δυναμικοί πίνακες Ενδιάμεση λύση : Ανάλυση με την χρεωπιστωτική μέθοδο Σε κάθε πράξη εισαγωγής αποδίδουμε 3 μονάδες πίστωσης T T 8 1 1 1 νέο στοιχείο

15 Δυναμικοί πίνακες Ενδιάμεση λύση : Ανάλυση με την χρεωπιστωτική μέθοδο Σε κάθε πράξη εισαγωγής αποδίδουμε 3 μονάδες πίστωσης T T 1 μέχρι τον επόμενο διπλασιασμό κάθε θέση του Τ θα έχει 1 μονάδα πίστωσης νέο στοιχείο 1 1 8

Δυναμικοί πίνακες Ενδιάμεση λύση : Ανάλυση με την ενεργειακή μέθοδο Επιλέγουμε όπου πλήθος αποθηκευμένων στοιχείων στον Τ μέγεθος του Τ Αρχικά, πριν την πρώτη εισαγωγή

Δυναμικοί πίνακες Ενδιάμεση λύση : Ανάλυση με την ενεργειακή μέθοδο Επιλέγουμε όπου πλήθος αποθηκευμένων στοιχείων στον Τ μέγεθος του Τ Έστω ότι η i-οστή εισαγωγή δεν προκαλεί διπλασιασμό του πίνακα τότε και επομένως έχουμε αντισταθμιστικό κόστος

Δυναμικοί πίνακες Ενδιάμεση λύση : Ανάλυση με την ενεργειακή μέθοδο Επιλέγουμε όπου πλήθος αποθηκευμένων στοιχείων στον Τ μέγεθος του Τ Έστω ότι η i-οστή εισαγωγή προκαλεί διπλασιασμό του πίνακα Τότε και επομένως έχουμε αντισταθμιστικό κόστος

Δυναμικοί πίνακες Δυναμικοί πίνακες με εισαγωγές και διαγραφές Συντελεστής πληρότητας πίνακα Τ : όπου πλήθος αποθηκευμένων στοιχείων στον Τ μέγεθος του Τ Επιθυμητές ιδιότητες : α) περιορισμένη σπατάλη χώρου : σταθερά β) μικρό αντισταθμιστικό κόστος ανά πράξη

Δυναμικοί πίνακες Δυναμικοί πίνακες με εισαγωγές και διαγραφές Συντελεστής πληρότητας πίνακα Τ : όπου πλήθος αποθηκευμένων στοιχείων στον Τ μέγεθος του Τ Επιθυμητές ιδιότητες : α) περιορισμένη σπατάλη χώρου : σταθερά β) μικρό αντισταθμιστικό κόστος ανά πράξη Για να πετύχουμε την ιδιότητα (α) πρέπει να αντιγράφουμε τα στοιχεία σε μικρότερο πίνακα μετά από αρκετές διαγραφές

Δυναμικοί πίνακες Δυναμικοί πίνακες με εισαγωγές και διαγραφές Δοκιμάζουμε να επεκτείνουμε την προηγούμενη λύση διπλασιασμός υποδιπλασιασμός εισαγωγή με διαγραφή με 8 15

Δυναμικοί πίνακες Δυναμικοί πίνακες με εισαγωγές και διαγραφές Δοκιμάζουμε να επεκτείνουμε την προηγούμενη λύση διπλασιασμός υποδιπλασιασμός εισαγωγή με διαγραφή με 8 επιτυγχάνει 15

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

Δυναμικοί πίνακες Δυναμικοί πίνακες με εισαγωγές και διαγραφές Π.χ. Ο(n) αντισταθμιστικό κόστος ανά πράξη εισαγωγή 8 15

Δυναμικοί πίνακες Δυναμικοί πίνακες με εισαγωγές και διαγραφές Π.χ. Ο(n) αντισταθμιστικό κόστος ανά πράξη εισαγωγή διαγραφή 8 8 15 15

Δυναμικοί πίνακες Δυναμικοί πίνακες με εισαγωγές και διαγραφές Ο(n) αντισταθμιστικό κόστος ανά πράξη Π.χ. εισαγωγή διαγραφή διαγραφή 8 8 15 15

Δυναμικοί πίνακες Δυναμικοί πίνακες με εισαγωγές και διαγραφές Ο(n) αντισταθμιστικό κόστος ανά πράξη Π.χ. γωγή εισαγωγή διαγραφή διαγραφή εισα Μπορούμε να επαναλάβουμε την ίδια διαδικασία πολλές φορές 8 8 15 15

Δυναμικοί πίνακες Δυναμικοί πίνακες με εισαγωγές και διαγραφές Βελτιωμένη λύση διπλασιασμός υποδιπλασιασμός εισαγωγή με διαγραφή με 8 15

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

Δυναμικοί πίνακες Δυναμικοί πίνακες με εισαγωγές και διαγραφές Ανάλυση με την ενεργειακή μέθοδο Επιλέγουμε, Ιδιότητες

Δυναμικοί πίνακες Δυναμικοί πίνακες με εισαγωγές και διαγραφές Ανάλυση με την ενεργειακή μέθοδο Επιλέγουμε, Ιδιότητες Το δυναμικό αρκεί για να καλύψει την αντιγραφή των αντικειμένων

Δυναμικοί πίνακες Δυναμικοί πίνακες με εισαγωγές και διαγραφές Ανάλυση με την ενεργειακή μέθοδο Επιλέγουμε, Αρχικά, πριν την πρώτη εισαγωγή και μετά από κάθε πράξη ισχύει Επομένως το συνολικό αντισταθμιστικό κόστος είναι

Δυναμικοί πίνακες Δυναμικοί πίνακες με εισαγωγές και διαγραφές Ανάλυση με την ενεργειακή μέθοδο Επιλέγουμε, Πρέπει να δείξουμε ότι η i-οστή πράξη (εισαγωγή ή διαγραφή) έχει αντισταθμιστικό κόστος Πρέπει να αναλύσουμε διάφορες περιπτώσεις ανάλογα με το είδος της πράξης και αν προκαλείται διπλασιασμός ή υποδιπλασιασμός του πίνακα

Δυναμικοί πίνακες Δυναμικοί πίνακες με εισαγωγές και διαγραφές Ανάλυση με την ενεργειακή μέθοδο Επιλέγουμε, Έστω ότι η i-οστή πράξη είναι εισαγωγή. Εάν και έχουμε

Δυναμικοί πίνακες Δυναμικοί πίνακες με εισαγωγές και διαγραφές Ανάλυση με την ενεργειακή μέθοδο Επιλέγουμε, Έστω ότι η i-οστή πράξη είναι εισαγωγή. Εάν και έχουμε

Δυναμικοί πίνακες Δυναμικοί πίνακες με εισαγωγές και διαγραφές Ανάλυση με την ενεργειακή μέθοδο Επιλέγουμε, Έστω ότι η i-οστή πράξη είναι διαγραφή. Εάν και δεν προκαλείται υποδιπλασιασμός έχουμε

Δυναμικοί πίνακες Δυναμικοί πίνακες με εισαγωγές και διαγραφές Ανάλυση με την ενεργειακή μέθοδο Επιλέγουμε, Έστω ότι η i-οστή πράξη είναι διαγραφή. Εάν και προκαλείται υποδιπλασιασμός έχουμε και οπότε

Δυναμικοί πίνακες Δυναμικοί πίνακες με εισαγωγές και διαγραφές Ανάλυση με την ενεργειακή μέθοδο Επιλέγουμε, Έστω ότι η i-οστή πράξη είναι διαγραφή. Εάν και προκαλείται υποδιπλασιασμός έχουμε και, άρα

Δυναμικοί πίνακες Δυναμικοί πίνακες με εισαγωγές και διαγραφές Ανάλυση με την ενεργειακή μέθοδο Επιλέγουμε, Με όμοιο τρόπο αναλύονται και οι υπόλοιπες περιπτώσεις. Έτσι λαμβάνουμε σταθερό αντισταθμιστικό κόστος για κάθε πράξη.

Δυναμικοί πίνακες Δυναμικοί πίνακες με εισαγωγές και διαγραφές Εγχειρίδιο της C++ στη διεύθυνση http://www.cplusplus.com/ Vector Vectors are a kind of sequence containers. As such, their elements are ordered following a strict linear sequence. Vector containers are implemented as dynamic arrays; Just as regular arrays, vector containers have their elements stored in contiguous storage locations, which means that their elements can be accessed not only using iterators but also using offsets on regular pointers to elements. But unlike regular arrays, storage in vectors is handled automatically, allowing it to be expanded and contracted as needed. Vectors are good at: Accessing individual elements by their position index (constant time). Iterating over the elements in any order (linear time). Add and remove elements from its end (constant amortized time).