Οδηγός Μελέτης - Εισαγωγή στον Προγραμματισμό

Α17.7 · Δυαδική αναζήτηση σε ταξινομημένο πίνακα

Διάλεξη 17: Δυαδική Αναζήτηση και Ταξινόμηση, διαφάνεια 14 · Δυσκολία ★★☆ · programming · Κεφάλαια: 17

Θέλω μια συνάρτηση που να δέχεται έναν πίνακα n ταξινομημένων ακεραίων σε αύξουσα σειρά και έναν ακέραιο που ψάχνουμε και να γυρνάει αν υπάρχει στον πίνακα ή όχι. Πως;

int binary_search(int elem, int *array, int n);

Υπόδειξη

Κρατήστε δύο δείκτες θέσης, low και high, για το τμήμα όπου μπορεί ακόμη να βρίσκεται το στοιχείο, και συγκρίνετε με το μεσαίο στοιχείο του τμήματος. Σκεφτείτε προσεκτικά τη συνθήκη του βρόχου (τι γίνεται όταν μένει ένα στοιχείο;) και ποια είναι τα νέα όρια, ώστε το τμήμα να μικραίνει πάντα.

Αριθμός στον οδηγό: Α17.7 (στο κεφάλαιο) · Μόνιμο αναγνωριστικό: slides-lec17-binary-search · Σύνδεσμος: https://progintro.github.io/study/questions/slides/slides-lec17-binary-search.html · Markdown (GitHub)