Καλές, καλές δομές δεδομένων
μικροαντικείμενα / / December 05, 2023
Αυτό το μάθημα - άλλο ένα σημαντικό βήμα στην εξέλιξή σας ως ικανού ειδικού πληροφορικής στον τομέα του προγραμματισμού. Αφού μάθετε τις βασικές δυνατότητες της γλώσσας, το αντικειμενοστραφή στοιχείο της, το επόμενο λογικό βήμα είναι μελέτη τυπικών, συχνά χρησιμοποιούμενων δομών δεδομένων, γνώση των δυνατών και των αδυναμιών τους για αποτελεσματική χρήση σε αυτές έργα.
Οποιοδήποτε περισσότερο ή λιγότερο αξιόπιστο πρόγραμμα χρησιμοποιεί τουλάχιστον μία απλή δομή δεδομένων, για παράδειγμα, πίνακες. Και σε πιο σύνθετα έργα υπάρχουν πάντα πιο σύνθετα όπως συνδεδεμένες λίστες, πίνακες κατακερματισμού, σύνολα, συσχετιστικοί πίνακες κ.λπ. Πρέπει να τα γνωρίζετε όλα αυτά ώστε τα προγράμματά σας να βγαίνουν όσο το δυνατόν πιο γρήγορα και ταυτόχρονα να χρησιμοποιείτε τη μνήμη της συσκευής με φειδώ. Επιπλέον, σχεδόν πάντα κατά τη διάρκεια συνεντεύξεων για δουλειά για τη θέση του προγραμματιστή τους ζητούν ερωτήσεις σχετικά με δομές δεδομένων και μεθόδους για την αξιολόγηση της πολυπλοκότητας των αλγορίθμων, συνήθως από την οπτική γωνία του "μεγάλου Ο" (Μεγάλο Ο). Όλα αυτά τα σημαντικά θέματα περιλαμβάνονται σε αυτό το μάθημα. Η συμπλήρωσή του θα σας επιτρέψει όχι μόνο να γράφετε αλγόριθμους με μεγαλύτερη αυτοπεποίθηση, αλλά και να έχετε μεγαλύτερη επιτυχία σε συνεντεύξεις για μελλοντική απασχόληση.
Εκμάθηση εκτίμησης της υπολογιστικής πολυπλοκότητας των αλγορίθμων
1. Εισαγωγή στο Big O
2. Μεγάλο Ο με λογαριθμική και παραγοντική πολυπλοκότητα
Οι απλούστερες δομές δεδομένων
1. Στατική συστοιχία
2. Στατικός πίνακας σε C++
3. Δυναμική συστοιχία
4. Δυναμικός πίνακας σε Python
5. Δυναμικός πίνακας σε C++
Συνδεδεμένες λίστες
1. Λίστα μεμονωμένα συνδεδεμένα
2. Λίστα μεμονωμένα συνδεδεμένα σε C++
3. Λίστα διπλά συνδεδεμένη
4. Διπλή συνδεδεμένη λίστα σε C++ από την αρχή
5. Κλάση λίστας μιας διπλά συνδεδεμένης λίστας της βιβλιοθήκης C++ STL
Ουρές και στοίβα
1. Ουρές FIFO και LIFO
2. ουρά συλλογής.deque στην Python
3. Κλάση ουράς deque της βιβλιοθήκης C++ STL
4. Σωρός
5. Υλοποίηση στοίβας σε Python και C++
Δέντρα και σύνολα
1. Δυαδικά δέντρα
2. Μέθοδοι διέλευσης και αφαίρεσης κορυφών ενός δυαδικού δέντρου
3. Δυαδικό δέντρο στην Python
4. Σκηνικά. Ορισμός Λειτουργιών
5. Σύνολα και πολυσύνολα σε C++
6. Δοχείο χαρτών βιβλιοθήκης STL σε C++
7. Πρόθεμα (loaded, Trie) δέντρο. Συνειρμικοί πίνακες
Πίνακες κατακερματισμού
1. Πίνακες κατακερματισμού
2. Universal Hashing
3. Ανοιχτή μέθοδος διευθυνσιοδότησης. Διπλός κατακερματισμός
4. Hash πίνακες σε Python και C++