Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

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

Παρόμοιες παρουσιάσεις


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

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

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

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

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

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

6 Δυναμικοί πίνακες k2k2 T 7 k1k1 k3k3 0 k4k4 k5k5 k6k6 k7k7

7 k2k2 T 7 k1k1 k3k3 0 k4k4 k5k5 k6k6 k7k7 k8k8 ο πίνακας είναι γεμάτος

8 Δυναμικοί πίνακες k2k2 T 7 k1k1 k3k3 0 k4k4 k5k5 k6k6 k7k7 k8k8 k9k9 ο πίνακας είναι γεμάτος

9 Δυναμικοί πίνακες k2k2 T 7 k1k1 k3k3 0 k4k4 k5k5 k6k6 k7k7 k8k8 k9k9 ο πίνακας είναι γεμάτος Λύση : Δημιουργούμε ένα μεγαλύτερο πίνακα Τ΄ και αντιγράφουμε τα στοιχεία του Τ. Τι μέγεθος πρέπει να έχει ο T’;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

47 Δυναμικοί πίνακες Δυναμικοί πίνακες με εισαγωγές και διαγραφές 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). Εγχειρίδιο της C++ στη διεύθυνση


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

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google