Βίντεο: Cómo Desarrollar Lógica de Programación 2024
Μέρος Αλγορίθμων Για Dummies Cheat Sheet
Ο παρακάτω πίνακας περιγράφει αλγόριθμους και τύπους αλγορίθμων που μπορείτε να βρείτε χρήσιμοι για διάφορους τύπους ανάλυσης δεδομένων. (
Χρήσιμος σύνδεσμος | ||
A * Αναζήτηση | Ο αλγόριθμος παρακολουθεί το κόστος των κόμβων καθώς τα διερευνά με τη χρήση του αλγορίθμου (Algorithms for Dummies). (n) h (n), όπου:
n
στόχος από τον κόμβο f (n) είναι το εκτιμώμενο κόστος της διαδρομής από το n στο στόχο Η ιδέα είναι να αναζητήσουμε πρώτα τα πιο ελπιδοφόρα μονοπάτια και να αποφύγουμε ακριβά μονοπάτια. Standford. edu Ισορροπημένο δέντρο Ένα είδος δέντρου που διατηρεί μια ισορροπημένη δομή μέσω της αναδιοργάνωσης, ώστε να μπορεί να προσφέρει μειωμένους χρόνους πρόσβασης. Ο αριθμός των στοιχείων στην αριστερή πλευρά διαφέρει από τον αριθμό στη δεξιά πλευρά κατά ένα το πολύ. Webdocs |
Αμφίδρομη αναζήτηση |
Αυτή η τεχνική αναζητά ταυτόχρονα από τον κόμβο ρίζας και τον κόμβο στόχου μέχρι να συναντηθούν οι δύο διαδρομές αναζήτησης στη μέση. Ένα πλεονέκτημα αυτής της προσέγγισης είναι ότι είναι καιρός αποτελεσματικός επειδή βρίσκει τη λύση γρηγορότερα από πολλές άλλες λύσεις ωμής βίας. Επιπλέον, χρησιμοποιεί μνήμη πιο αποτελεσματικά από άλλες προσεγγίσεις και πάντα βρίσκει λύση. Το κύριο μειονέκτημα είναι η πολυπλοκότητα της εφαρμογής. | Σχεδιασμός. cs | Δυαδικό Δέντρο |
Αυτός είναι ένας τύπος δέντρου που περιέχει κόμβους που συνδέονται με μηδέν (κόμβους φύλλων), έναν ή δύο (κόμβους κλάδων) άλλους κόμβους. Κάθε κόμβος καθορίζει τα τρία στοιχεία που πρέπει να περιλαμβάνει για να παρέχει συνδεσιμότητα και δεδομένα αποθήκευσης: αποθήκευση δεδομένων, αριστερή σύνδεση και σωστή σύνδεση. | cs. cmu. edu | Breadth-First Search |
Αυτή η τεχνική ξεκινά στον κόμβο ρίζας, εξερευνά πρώτα τους κόμβους παιδιού και μετά μετακινείται προς το επόμενο επίπεδο. Προχωρεί επίπεδο μέχρι το επίπεδο μέχρι να βρει μια λύση. Το μειονέκτημα αυτού του αλγορίθμου είναι ότι πρέπει να αποθηκεύει κάθε κόμβο στη μνήμη, πράγμα που σημαίνει ότι χρησιμοποιεί μια σημαντική ποσότητα μνήμης για μεγάλο αριθμό κόμβων. Αυτή η τεχνική μπορεί να ελέγξει για διπλούς κόμβους, που εξοικονομεί χρόνο και πάντα έρχεται με μια λύση. | Khan Academcy | Brute Force |
Πρόκειται για μια τεχνική επίλυσης προβλημάτων στην οποία κάποιος προσπαθεί να βρει την καλύτερη δυνατή λύση. Οι τεχνικές βίαιης δύναμης εγγυώνται μια βέλτιστη λύση όταν υπάρχει, αλλά είναι τόσο χρονοβόρες για την εφαρμογή που οι περισσότεροι άνθρωποι αποφεύγουν. | Igm. univ | Βάθος-πρώτη αναζήτηση |
Αυτή η τεχνική αρχίζει στον κόμβο ρίζας και εξετάζει ένα σύνολο συνδεδεμένων κόμβων παιδιών μέχρι να φτάσει σε έναν κόμβο φύλλων. Προχωράει κλάδος κατά υποκατάστημα μέχρι να βρει λύση. Το μειονέκτημα αυτού του αλγορίθμου είναι ότι δεν μπορεί να ελέγξει για διπλούς κόμβους, πράγμα που σημαίνει ότι θα μπορούσε να διασχίσει τις ίδιες διαδρομές κόμβων περισσότερες από μία φορές. Στην πραγματικότητα, αυτός ο αλγόριθμος μπορεί να μην βρει μια λύση καθόλου, πράγμα που σημαίνει ότι πρέπει να ορίσετε ένα σημείο αποκοπής για να διατηρήσετε τον αλγόριθμο να ψάξει απεριόριστα. Ένα πλεονέκτημα αυτής της προσέγγισης είναι ότι η μνήμη είναι αποτελεσματική. | Hacker Earth | Διαίρεση και κατακράτηση |
Πρόκειται για μια τεχνική επίλυσης προβλημάτων στην οποία το πρόβλημα χωρίζεται στα μικρότερα κομμάτια και επιλύεται χρησιμοποιώντας την απλούστερη δυνατή προσέγγιση. Αυτή η τεχνική εξοικονομεί σημαντικό χρόνο και πόρους σε σύγκριση με άλλες προσεγγίσεις, όπως η ωμή βία. Ωστόσο, δεν εγγυάται πάντα το καλύτερο αποτέλεσμα. | Khan Academy | Dijikstra |
Αυτός είναι ένας αλγόριθμος που χρησιμοποιείται για την εύρεση της συντομότερης διαδρομής σε ένα κατευθυνόμενο, σταθμισμένο γράφημα (με θετικά βάρη). | Geeks για Geeks | Γράφημα |
Ένα γράφημα είναι ένα είδος προέκτασης δέντρου. Όπως και με τα δέντρα, έχετε κόμβους που συνδέονται μεταξύ τους για να δημιουργήσουν σχέσεις. Ωστόσο, σε αντίθεση με τα δυαδικά δέντρα, ένα γράφημα μπορεί να έχει περισσότερες από μία ή δύο συνδέσεις. Στην πραγματικότητα, οι κόμβοι γραφημάτων έχουν συχνά πολλές συνδέσεις. Βλέπετε γραφήματα που χρησιμοποιούνται σε μέρη όπως χάρτες για GPS και όλα τα άλλα μέρη για τα οποία η προσέγγιση από πάνω προς τα κάτω ενός δέντρου δεν θα λειτουργήσει. | Tutorials | Greedy Algorithms |
Αυτή η τεχνολογία μιας λύσης προβλημάτων στην οποία η λύση βασίζεται στην καλύτερη απάντηση για κάθε βήμα της διαδικασίας επίλυσης προβλημάτων. Οι άπληστοι αλγόριθμοι γενικά κάνουν δύο υποθέσεις: |
|
Είναι δυνατή μια βέλτιστη επιλογή σε ένα δεδομένο βήμα. |
Επιλέγοντας τη βέλτιστη επιλογή σε κάθε βήμα είναι δυνατή η εξεύρεση βέλτιστης λύσης για το συνολικό πρόβλημα. | Tutorials
Ακριβής Best-First Search (BFS)
Ο αλγόριθμος επιλέγει πάντα τη διαδρομή που είναι πιο κοντά στο στόχο χρησιμοποιώντας την εξίσωση: f (n) n) |
. Αυτός ο συγκεκριμένος αλγόριθμος μπορεί να βρει λύσεις αρκετά γρήγορα, αλλά μπορεί επίσης να κολλήσει σε βρόχους, έτσι πολλοί άνθρωποι δεν θεωρούν ότι είναι η βέλτιστη προσέγγιση για την εξεύρεση λύσης. |
Centurion2 | Hashing Αυτή είναι μια μέθοδος για την πρόβλεψη της θέσης ενός συγκεκριμένου στοιχείου δεδομένων στη δομή δεδομένων (όποια και αν είναι αυτή η δομή) πριν το αναζητήσουμε. Αυτή η προσέγγιση βασίζεται στη χρήση κλειδιών που τοποθετούνται σε ένα ευρετήριο. Μια συνάρτηση hash μετατρέπει το κλειδί σε μια αριθμητική τιμή που ο αλγόριθμος τοποθετεί σε έναν πίνακα κατακερματισμού. Ένας πίνακας hash παρέχει τα μέσα για τη δημιουργία ενός δείκτη που δείχνει στοιχεία σε μια δομή δεδομένων, έτσι ώστε ένας αλγόριθμος να μπορεί εύκολα να προβλέψει τη θέση των δεδομένων. Tutorials Heap Πρόκειται για ένα εξελιγμένο δέντρο που επιτρέπει την εισαγωγή δεδομένων στη δομή του δέντρου. Η χρήση της εισαγωγής δεδομένων κάνει τη διαλογή πιο γρήγορη. Μπορείτε να ταξινομήσετε περαιτέρω αυτά τα δέντρα ως μέγιστα σωρούς και λίγα σωρούς, ανάλογα με την ικανότητα του δέντρου να παράσχει αμέσως τη μέγιστη ή ελάχιστη τιμή που υπάρχει στο δέντρο. | Tutorials |
Heuristics | Πρόκειται για μια τεχνική επίλυσης προβλημάτων που βασίζεται στην αυτοανακάλυψη και παράγει αρκετά χρήσιμα αποτελέσματα (όχι απαραίτητα βέλτιστα αλλά αρκετά καλά) για την αντιμετώπιση ενός προβλήματος αρκετά καλά ώστε να μην υπάρχει καλύτερη λύση. t απαραίτητο. Η αυτο-ανακάλυψη είναι η διαδικασία που επιτρέπει στον αλγόριθμο να σας δείξει ένα δυνητικά χρήσιμο μονοπάτι για μια λύση (αλλά πρέπει ακόμα να υπολογίζετε στην ανθρώπινη διαίσθηση και κατανόηση για να μάθετε εάν η λύση είναι σωστή). | Βορειοδυτικά. edu |
MapReduce | Αυτό είναι ένα πλαίσιο για τη δημιουργία αλγορίθμων που χρησιμοποιούν υπολογιστές παράλληλα (χρησιμοποιώντας πολλούς υπολογιστές συνδεδεμένους μαζί σε ένα δίκτυο), επιτρέποντας στους αλγόριθμους να ολοκληρώνουν τις λύσεις τους πιο γρήγορα. | Hadoop Apache |
Mergesort | Το Mergesort είναι μια γενική σύγκριση με βάση τη μέθοδο της ταξινόμησης δεδομένων. Εξαρτάται από μια προσέγγιση διαίρεσης και κατάκτησης για την εκπλήρωση της αποστολής της. | Geeks for Geeks |
Nash Equilibrium | Αυτή είναι μια θεωρία παιχνιδιών στην οποία οι άλλοι παίκτες γνωρίζουν τη στρατηγική ισορροπίας για τους άλλους παίκτες, έτσι ώστε κανείς να μην έχει κάτι να κερδίσει αλλάζοντας την προσωπική του στρατηγική. Αυτή η θεωρία βλέπει χρήση σε οποιαδήποτε εχθρική κατάσταση στην οποία ο παίκτης πρέπει να λογοδοτεί για τις αποφάσεις που λαμβάνονται από όλους τους άλλους παίκτες για να κερδίσει το παιχνίδι. | Khan Academy |
PageRank | PageRank είναι ένας αλγόριθμος για τη μέτρηση της σημασίας ενός κόμβου σε ένα γράφημα. Αυτός ο αλγόριθμος βρίσκεται στη ρίζα των βασικών αλγορίθμων της Google για την παροχή σχετικών αναζητήσεων στους χρήστες. | Πρίνστον. edu |
Pure Heuristic Search | Αυτός ο αλγόριθμος επεκτείνει τους κόμβους με βάση το κόστος τους. Διατηρεί δύο λίστες. Η κλειστή λίστα περιέχει τους κόμβους που έχει ήδη ερευνήσει και η ανοιχτή λίστα περιέχει τους κόμβους που πρέπει να εξερευνήσει ακόμα. Σε κάθε επανάληψη, ο αλγόριθμος επεκτείνει τον κόμβο με το χαμηλότερο δυνατό κόστος. Όλοι οι κόμβοι του παιδιού τοποθετούνται στον κλειστό κατάλογο και υπολογίζονται τα μεμονωμένα κόστη παιδικού κόμβου. Ο αλγόριθμος αποστέλλει τους κόμβους παιδιού με χαμηλό κόστος πίσω στην ανοικτή λίστα και διαγράφει τους παιδικούς κόμβους με υψηλό κόστος. Συνεπώς, ο αλγόριθμος εκτελεί μια έξυπνη αναζήτηση με βάση το κόστος της λύσης. | World of Computing |
Quicksort | Αυτή είναι μια γενική στρατηγική διαλογής που βασίζεται σε συστοιχίες καταχώρησης δεδομένων σε μικρότερες συστοιχίες. Εξαρτάται από μια προσέγγιση διαίρεσης και κατάκτησης για την εκπλήρωση της αποστολής της. | Tutorials |
Μη ισορροπημένο δέντρο | Πρόκειται για ένα δέντρο που τοποθετεί νέα στοιχεία δεδομένων όποτε είναι απαραίτητο στο δέντρο χωρίς ισορροπία. Αυτή η μέθοδος προσθήκης στοιχείων κάνει πιο γρήγορη την κατασκευή του δέντρου αλλά μειώνει την ταχύτητα πρόσβασης κατά την αναζήτηση ή τη διαλογή. | Quora |
|