Γλώσσα :
SWEWE Μέλος :Σύνδεση |Εγγραφή
Αναζήτηση
Εγκυκλοπαίδεια της κοινότητας |Εγκυκλοπαίδεια Απαντήσεις |Υποβολή ερωτήματος |Λεξιλόγιο Γνώση |Ανεβάστε τη γνώση
Προηγούμενος 1 Επόμενος Επιλέξτε Σελίδες

Δυαδική αναζήτηση

Δυαδική αναζήτηση, επίσης γνωστή ως δυαδική αναζήτηση, το πλεονέκτημα του σχετικά λιγότερες, ταχύτητα αναζήτησης, καλή μέση απόδοση? Απαιτείται μειονέκτημα είναι 0.059194 ομαλή τραπέζι και τοποθετήστε διαγράψετε τις δυσκολίες. Ως εκ τούτου, μια δυαδική μέθοδο αναζήτησης εφαρμόζεται συχνά δεν βρίσκουν συχνές αλλαγές σε μια ταξινομημένη λίστα. Κατ 'αρχάς, ας υποθέσουμε ότι ο πίνακας είναι ταξινομημένη σε αύξουσα σειρά των στοιχείων στη μέση του τραπεζιού και να βρει τις λέξεις-κλειδιά που καταγράφονται σχετικά λέξη-κλειδί, αν οι δύο είναι ίσες, τότε βρείτε την επιτυχία? Άλλο τρόπο να χρησιμοποιήσετε τον πίνακα στη μέση της καταγραφής πριν και μετά τις δύο υπο-πίνακες, αν μέσα από την καταγραφή περισσότερο από το να βρει τις λέξεις-κλειδιά λέξεις-κλειδιά για να βρείτε περαιτέρω πριν από έναν πίνακα του παιδιού, αλλιώς το παιδί έπειτα από ένα πίνακα αναζήτησης. Επαναλάβετε τη διαδικασία μέχρι να βρείτε τα αρχεία πληρούν τις προϋποθέσεις, η αναζήτηση είναι επιτυχής, ή μέχρι το τραπέζι παιδί δεν υπάρχει, κατά τον οποίο χρόνο αναζήτησης είναι ανεπιτυχής.Εισαγωγή στους Αλγόριθμους

Αλγόριθμος απαιτεί

Διαδοχική δομή αποθήκευσης πρέπει να χρησιμοποιείται

2 πρέπει να καταδικαστεί από το μέγεθος κλειδί.

Πολυπλοκότητα του αλγορίθμου

Υποθέτοντας σειρά του μήκους n, η πολυπλοκότητα του αλγορίθμου είναι O (log (n))

Εδώ είναι μερικές ψευδο-κώδικα δυαδική αναζήτηση για:

BinarySearch (max, min, des)

mid-<(max min) / 2

ενώ (min <= max)

mid = (min max) / 2

αν τα μέσα = des συνέχεια

επιστρέψει μέσα

elseif μέσα> des συνέχεια

max = mid-1

αλλιώς

min = mid 1

επιστρέψει max

Δυαδική μέθοδο αναζήτησης, επίσης γνωστή δυαδική μέθοδο αναζήτησης, η οποία εκμεταλλεύεται πλήρως τη σχέση μεταξύ των στοιχείων της τάξης, με τη χρήση του διαίρει και βασίλευε στρατηγική, στη χειρότερη περίπτωση να ολοκληρώσει το έργο της αναζήτησης με O (log n). Η βασική ιδέα είναι ότι τα n στοιχεία σε περίπου τον ίδιο αριθμό δύο και μισή, ρίξτε μια [n / 2] και θέλουν να βρουν x για σύγκριση, αν x = a [n / 2] είναι να βρεθεί x, ο αλγόριθμος τερματίζει. Εάν x <a [n / 2], τότε απλά αριστερό μισό του πίνακα μια συνεχής αναζήτηση για x (Αυτό προϋποθέτει ότι τα στοιχεία πίνακα παρουσιάζονται σε αύξουσα σειρά). Αν x> a [n / 2], τότε απλά να συνεχίσει δεξί μισό του πίνακα μια αναζήτηση x.

Binary μέθοδος αναζήτησης είναι γενικά BUG υπάρχει μια κρίσιμη τιμή, ότι δεν είναι η τελευταία για να βρείτε ή η πρώτη τιμή. Μπορεί να συγκριθεί με τους δύο τελευταίους αριθμούς, που στο τέλος πάλι για τον προσδιορισμό της αξίας ίσης αξίας και να εξετάσουμε.

Παράδειγμα κωδικού

pascal πηγαίο κώδικα

Κώδικα γλώσσας C

Κώδικα Java

δημόσια τάξη BinarySearch {/ *** δυαδικό αλγόριθμο αναζήτησης ** @ param srcArray οργανωμένη παράταξη * @ param des βρείτε το στοιχείο του πίνακα * @ επιστροφή des σήμανση, και δεν μπορούσε να βρει επιστρέψει -1 * / public static int binarySearch (int [] srcArray , int des) {int χαμηλό = 0? int υψηλή = srcArray.length-1? ενώ (χαμηλή <= υψηλή) {int = χαμηλή μέση ((high-low) / 2)? αν (des == srcArray [μέση ]) {μέση επιστροφή?} else if (des <srcArray [μέση]) {= υψηλή μέση - 1?} else {low = μέση 1?}} επιστροφή -1?} δημόσια στατική άκυρη κύρια (String [] args ) {int [] src = new int [] {1, 3, 5, 7, 8, 9}? System.out.println (binarySearch (src, 3))?}} Κωδικός AAuto

/ / Δυαδική αναζήτηση

binSearch λειτουργία (t, ν) {

var p = # t?

var p2?


Προηγούμενος 1 Επόμενος Επιλέξτε Σελίδες
Χρήστης Ανασκόπηση
Δεν υπάρχουν ακόμη σχόλια
Θέλω να σχολιάσω [Επισκέπτης (3.17.*.*) | Σύνδεση ]

Γλώσσα :
| Ελέγξτε τον κωδικό :


Αναζήτηση

版权申明 | 隐私权政策 | Πνευματική ιδιοκτησία @2018 Κόσμος εγκυκλοπαιδικές γνώσεις