Προγραμματιστικές Τεχνικές

Σχετικά έγγραφα
Προγραμματιστικές Τεχνικές

Προγραµµατιστικές Τεχνικές

Προγραμματιστικές Τεχνικές

Διάλεξη 17η: Ταξινόμηση και Αναζήτηση

Εισαγωγή στην πληροφορική

Γ7.5 Αλγόριθμοι Αναζήτησης. Γ Λυκείου Κατεύθυνσης

Εισαγωγή στην πληροφορική

Διαδικασιακός Προγραμματισμός

Εισαγωγή στην επιστήμη των υπολογιστών. Λογισμικό Υπολογιστών Κεφάλαιο 8ο Αλγόριθμοι

Εισαγωγή στην πληροφορική

3 ΑΝΑ ΡΟΜΗ ΑΝΑΖΗΤΗΣΗ - ΤΑΞΙΝΟΜΗΣΗ. n! = 1*2*3*..(n-1)*n. n! = 1 αν n = 0, = n*(n-1)! αν n > ΑΝΑ ΡΟΜΗ Εισαγωγή

Στόχοι και αντικείμενο ενότητας. Πέρασμα Πίνακα σε Συνάρτηση (συν.) Πέρασμα Πίνακα σε Συνάρτηση. #8.. Ειδικά Θέματα Αλγορίθμων

Αναζήτηση. 1. Σειριακή αναζήτηση 2. Δυαδική Αναζήτηση. Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη

Περιγραφή αλγορίθµων. ιαγράµµατα ροής

Πληροφορική 2. Αλγόριθμοι

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δοµές Δεδοµένων

Εισαγωγή στην πληροφορική

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

Δομές Δεδομένων & Αλγόριθμοι

Αναδρομή Ανάλυση Αλγορίθμων

Εργαστηριακή Άσκηση 1

Αλγόριθμοι Ταξινόμησης Μέρος 2

Εργαστήριο 6: Αναζήτηση, Ανάλυση Πολυπλοκότητας

Προγραμματιστικές τεχνικές

Προγραμματισμός Η/Υ (ΤΛ2007 )

Αναζήτηση και ταξινόμηση

Διάλεξη 04: Παραδείγματα Ανάλυσης

Προγραµµατιστικές Τεχνικές

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ.

Αλγόριθμοι και Δομές Δεδομένων (Ι) (εισαγωγικές έννοιες)

Διάλεξη 04: Παραδείγματα Ανάλυσης Πολυπλοκότητας/Ανάλυση Αναδρομικών Αλγόριθμων

ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 4. Παραδείγματα Ανάλυσης Πολυπλοκότητας Ανάλυση Αναδρομικών Αλγόριθμων

Διδάσκων: Παναγιώτης Ανδρέου

Τι είναι αλγόριθμος; Υποπρογράμματα (υποαλγόριθμοι) Βασικές αλγοριθμικές δομές

Προγραμματιστικές Τεχνικές

11/23/2014. Στόχοι. Λογισμικό Υπολογιστή

Διδάσκων: Παναγιώτης Ανδρέου

Δομές Δεδομένων & Αλγόριθμοι

ΗΥ-150. Ταξινόµηση και Αναζήτηση

Προγραµµατιστικές Τεχνικές

Αλγόριθμοι Αναζήτησης. (AeppAcademy.com)

Εργαστήριο 2: Πίνακες

Προγραμματισμός Η/Υ. Ενότητα 8: Ειδικά Θέματα Αλγορίθμων

Προγραµµατισµός 1 Ταξινόµηση - Αναζήτηση

Δομημένος Προγραμματισμός (ΤΛ1006)

Εισαγωγή στην πληροφορική

Εισαγωγή στην πληροφορική

Εισαγωγή στην πληροφορική

Προγραµµατιστικές τεχνικές

Προγραμματιστικές τεχνικές

Μεταγλωττιστές Βελτιστοποίηση

Προγραμματισμός Ι (ΗΥ120)

Εισαγωγή στην πληροφορική

Quicksort. ημήτρης Φωτάκης. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών. Εθνικό Μετσόβιο Πολυτεχνείο

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 8 Ο. Ταξινόμηση και Αναζήτηση Συναρτήσεις χειρισμού οθόνης ΣΙΝΑΤΚΑΣ Ι. ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Εισαγωγή στην πληροφορική

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Αρχές Ανάλυσης Αλγορίθµων Κεφάλαιο 2. Ε. Μαρκάκης Επικ. Καθηγητής

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων

Αναδρομή (Recursion) Πώς να λύσουμε ένα πρόβλημα κάνοντας λίγη δουλειά και ανάγοντας το υπόλοιπο να λυθεί με τον ίδιο τρόπο.

1. Δεν μπορεί να γίνει κλήση μίας διαδικασίας μέσα από μία συνάρτηση.

Επιλογή. Επιμέλεια διαφανειών: Δ. Φωτάκης. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών. Εθνικό Μετσόβιο Πολυτεχνείο

ΑΡΧΗ 2ΗΣ ΣΕΛΙΔΑΣ Γ Α... Β

Προγραµµατιστικές τεχνικές

Διαίρει-και-Βασίλευε. Διαίρει-και-Βασίλευε. MergeSort. MergeSort. Πρόβλημα Ταξινόμησης: Είσοδος : ακολουθία n αριθμών (α 1

Quicksort. Επιμέλεια διαφανειών: Δ. Φωτάκης Μικροαλλαγές: Α. Παγουρτζής. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων

ΚΕΦΑΛΑΙΟ 5: Αλγόριθµοι

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Πληροφορική II. Ενότητα 2 : Αλγόριθμοι. Δρ. Γκόγκος Χρήστος

ΠΛΗ111. Ανοιξη Μάθηµα 8 ο. Αναζήτηση. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης

ΔΥΑΔΙΚΗ ΑΝΑΖΗΤΗΣΗ & ΤΑΞΙΝΟΜΗΣΗ ΜΕ ΣΥΓΧΩΝΕΥΣΗ

Quicksort. ιδάσκοντες: Σ. Ζάχος,. Φωτάκης Επιμέλεια διαφανειών:. Φωτάκης. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

Αλγόριθμοι Αναζήτησης

1η Σειρά Γραπτών Ασκήσεων

Προγραµµατιστικές Τεχνικές

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 9: ΒΑΣΙΚΕΣ ΤΕΧΝΙΚΕΣ ΣΧΕΔΙΑΣΜΟΥ ΚΑΙ ΑΝΑΛΥΣΗΣ ΑΛΓΟΡΙΘΜΩΝ ΕΞΙΣΟΡΡΟΠΗΣΗ, ΔΙΑΙΡΕΙ ΚΑΙ ΒΑΣΙΛΕΥΕ

1. Δεν μπορεί να γίνει κλήση μίας διαδικασίας μέσα από μία συνάρτηση.

Αλγόριθμοι Ταξινόμησης Bubble Sort Quick Sort. Αντρέας Δημοσθένους Καθηγητής Πληροφορικής Ολυμπιάδα 2012

Στοιχεία Αλγορίθµων και Πολυπλοκότητας

Μεταγλωττιστές Βελτιστοποίηση

Δομές Αναζήτησης. κλειδί από ολικά διατεταγμένο σύνολο. Θέλουμε να υποστηρίξουμε δύο βασικές λειτουργίες: Εισαγωγή ενός νέου στοιχείου

ΜΥΥ105: Εισαγωγή στον Προγραμματισμό. Αναζήτηση και Ταξινόμηση Χειμερινό Εξάμηνο 2016

Εισαγωγή στην Πληροφορική

Δομές Δεδομένων & Αλγόριθμοι

Προγραµµατιστικές Τεχνικές

Δυαδικά Δέντρα Αναζήτησης (Binary Search Trees) Ορισμός : Ένα δυαδικό δέντρο αναζήτησης t είναι ένα δυαδικό δέντρο, το οποίο είτε είναι κενό είτε:

ιαίρει-και-βασίλευε ημήτρης Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο

Σύνοψη Προηγούμενου. Πίνακες (Arrays) Πίνακες (Arrays): Βασικές Λειτουργίες. Πίνακες (Arrays) Ορέστης Τελέλης

ΟιβασικέςπράξειςπουορίζουντονΑΤΔ δυαδικό δέντρο αναζήτησης είναι οι ακόλουθες:

Quicksort. Πρόβλημα Ταξινόμησης. Μέθοδοι Ταξινόμησης. Συγκριτικοί Αλγόριθμοι

Αναδρομικοί Αλγόριθμοι

1. Ο διερμηνευτής εντοπίζει μόνο τα συντακτικά λάθη ενός προγράμματος, ενώ ο μεταγλωττιστής και τα λογικά.

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δοµές Δεδοµένων

Επαναληπτικές Διαδικασίες

Δομές Δεδομένων. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής. Δομές Δεδομένων. Τμήμα Εφαρμοσμένης Πληροφορικής

Μάντεψε τον Αριθμό. Έχω Ένα Μυστικό. Το Βρήκα;

Επιλογή. Πρόβλημα Επιλογής. Μέγιστο / Ελάχιστο. Εφαρμογές

Επιλογή. ημήτρης Φωτάκης. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών. Εθνικό Μετσόβιο Πολυτεχνείο

Εισαγωγή στην επιστήμη των Υπολογιστών & Τηλεπικοινωνιών

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2

Transcript:

Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Αγρονόμων Τοπογράφων Μηχανικών Προγραμματιστικές Τεχνικές Βασίλειος Βεσκούκης Δρ. Ηλεκτρολόγος Μηχανικός & Μηχανικός Υπολογιστών ΕΜΠ v.vescoukis@cs.ntua.gr Ρωμύλος Κορακίτης Αστροφυσικός Αναπλ. Καθηγητής ΕΜΠ romylos@survey.ntua.gr Αναδρομικοί αλγόριθμοι Αλγόριθμοι αναζήτησης

Αναδρομή Αναδρομή είναι η ικανότητα μιας συνάρτησης να καλεί τον εαυτό της. Γιατί η αναδρομή είναι χρήσιμη; Η νέα κλήση της συνάρτησης αναφέρεται σε μια απλούστερη κατάσταση. Πότε τερματίζεται η αναδρομή; Όταν ο υπολογισμός που απαιτείται είναι τόσο απλός που γίνεται με ανάθεση τιμής (συνήθως κάποια αρχική τιμή) Μια αναδρομική συνάρτηση έχει δύο τμήματα: 1. Μια κλήση του εαυτού της με απλούστερες παραμέτρους 2. Ένα τμήμα ελέγχου, που τερματίζει την συνάρτηση στην αρχική τιμή.

Αναδρομή - Παράδειγμα 1 : Παραγοντικό Πρόβλημα: Να σχεδιαστεί και να γραφεί μια αναδρομική συνάρτηση που θα υπολογίζει το παραγοντικό ενός ακεραίου αριθμού. Δεδομένα εισόδου: ο ακέραιος n Δεδομένα εξόδου: η τιμή του n! Τύπος υπολογισμού : n! = 1 2 3 n Αναδρομικός τύπος : n! = n (n-1)! Απλούστερη συνθήκη : 0! = 1 ΑΛΓΟΡΙΘΜΟΣ Factorial(n) if (n=0) return 1 else return n*factorial(n-1)

Αναδρομή - Παράδειγμα 2 : Μέγιστος κοινός διαιρέτης Πρόβλημα: Να σχεδιαστεί και να γραφεί μια αναδρομική συνάρτηση που θα υπολογίζει τον μέγιστο κοινό διαιρέτη δύο ακεραίων m και n. ΑΛΓΟΡΙΘΜΟΣ 1 (Ευκλείδιος) (m > n) gcd(m,n) if (n=0) return m else return gcd(n,m MOD n) ΑΛΓΟΡΙΘΜΟΣ 2 (Dijkstra) gcd(m,n) if (m=n) return m else if (m>n) return gcd(m-n,n) else return gcd(m,n-m)

Αναδρομή - Παράδειγμα 3 : Ταξινόμηση Quicksort Ο πίνακας Α[Ν] περιέχει αταξινόμητα δεδομένα και επιζητούμε αύξουσα ταξινόμηση. Η λειτουργία του αλγορίθμου αυτού στηρίζεται στην αναδρομή: ο πίνακας χωρίζεται σε τμήματα και ο αλγόριθμος καλεί τον εαυτό του στα αταξινόμητα, μικρότερα τμήματα. Τα βασικά βήματα του αλγορίθμου είναι: 1. Αρχικά επιλέγεται ως οδηγός ένα τυχαίο στοιχείο του πίνακα (πχ το πρώτο) και μετρώνται πόσα στοιχεία του Α είναι μικρότερα από αυτό. Έστω Χ ο αριθμός αυτός. 2. Το οδηγό στοιχείο ανταλλάσσει την θέση του με το στοιχείο Α[Χ]. Ο αρχικός πίνακας Α έχει έτσι χωριστεί σε 3 τμήματα: Κάτω υποπίνακας, με στοιχεία Α[0] ως Α[Χ-1] ΤοοδηγόστοιχείοΑ[Χ], που βρίσκεται στην σωστή τελική του θέση Πάνω υποπίνακας, με στοιχεία Α[Χ+1] ως Α[Ν-1]

Αναδρομή - Παράδειγμα 3 : Ταξινόμηση Quicksort 3. Επειδή υπάρχει ένας αριθμός στοιχείων του κάτω υποπίνακα που πρέπει να μεταφερθούν στον πάνω υποπίνακα και αντίστροφα, γίνεται αυτή η εναλλαγή των στοιχείων με την βοήθεια δύο δεικτών που διατρέχουν τους υποπίνακες με αντίστροφη φορά. 4. Τώρα, όλα τα στοιχεία του κάτω υποπίνακα είναι μικρότερα από το οδηγό στοιχείο και, αντίστοιχα, όλα τα στοιχεία του πάνω υποπίνακα είναι μεγαλύτερα από αυτό. Ο αλγόριθμος καλεί τον εαυτό του, χωριστά στον κάτω και στον πάνω υποπίνακα. 5. Ο αλγόριθμος τερματίζεται όταν και οι δύο υποπίνακες της τελευταίας αναδρομής είναι κενοί, οπότε ανασυγκροτείται ο αρχικός πίνακας με διαδοχικές ενώσεις των υποπινάκων, που είναι σωστά ταξινομημένοι. Υπάρχουν διάφορες παραλλαγές στην υλοποίηση του αλγόριθμου QuickSort. Στον ακόλουθο κώδικα γίνονται πρώτα οι αναδρομικές κλήσεις για τους κάτω υποπίνακες και μετά για τους άνω.

Αναδρομή - Παράδειγμα 3 : Ταξινόμηση Quicksort ΚΩΔΙΚΑΣ C++ void quicksort(float arr[],int low, int high) { int i, j; float temp; while (high>low) { i=low; j=high; temp=arr[low]; while (i<j) { while (arr[j]>temp) j=j-1; arr[i]=arr[j]; while ((i<j) && (arr[i]<=temp)) i=i+1; arr[j]=arr[i]; } arr[i]=temp; quicksort(arr,low,i-1); low=i+1; } }

Αναζήτηση (search) Μια συνήθης διαδικασία στα στοιχεία ενός πίνακα είναι η αναζήτηση. Αναζήτηση (search) είναι η έρευνα των στοιχείων ενός πίνακα με σκοπό την εύρεση της θέσης (= δείκτη στοιχείου) στην οποία βρίσκεται κάποια συγκεκριμένη τιμή κλειδί (search key) ίδιου τύπου. Η αναζήτησημπορεί να είναι επιτυχής ή ανεπιτυχής. Ο απλούστερος αλγόριθμος αναζήτησης είναι η γραμμική αναζήτηση (linear or sequential search). Εξετάζουμε, διαδοχικά, όλαταστοιχείατου πίνακα, συγκρίνοντάς τα με το κλειδί, μέχρις ότου βρεθεί το στοιχείο που έχει την τιμή κλειδί ή δεν βρεθεί τέτοιο στοιχείο (ανεπιτυχής αναζήτηση). Στην βασική της μορφή, η γραμμική αναζήτηση ΔΕΝ απαιτεί ταξινομημένο πίνακα, όμως η επίδοσή της μπορεί να βελτιωθεί αν ο πίνακας είναι ταξινομημένος.

Γραμμική αναζήτηση (Linear search) Αναζητούμε την τιμή key, αν υπάρχει, στα στοιχεία του πίνακα Α[Ν] Στην απλούστερη μορφή, συγκρίνουμε διαδοχικά τα στοιχεία του πίνακα με την τιμή key μέχρις ότου εξαντληθούν τα στοιχεία ή βρεθεί στοιχείο ίσο με το key, οπότε ο αλγόριθμος τερματίζεται. Η τιμή του δείκτη που αναφέρεται στο ζητούμενο στοιχείο καταχωρείται σε μια ακέραια μεταβλητή, π.χ. την Κ, που αρχικοποιείται σε μια τιμή άκυρη ως δείκτης του πίνακα ( π.χ. Κ = 1). Μετά τον τερματισμό του αλγορίθμου, αν η τιμή key ΔΕΝ υπάρχει στον πίνακα (ανεπιτυχής αναζήτηση), η Κ διατηρεί την αρχική τιμή της. Αν η αναζήτηση είναι επιτυχής, η τιμή του Κ δηλώνει το πρώτο στοιχείο του πίνακα που έχει τιμή key.

Γραμμική αναζήτηση (Linear search) ΨΕΥΔΟΚΩΔΙΚΑΣ ΑΡΧΗ Β1 Επιτυχία = ΨΕΥΔΗΣ Κ = 1 Ι = 0 Β2 Εφ όσον (Ι < Ν ΚΑΙ Επιτυχία = ΨΕΥΔΗΣ), εκτέλεσε: Β3 Αν (Α[Ι] = key), τότε : Επιτυχία = ΑΛΗΘΗΣ Κ = Ι Β4 Ι = Ι + 1 Β5 Επιστροφή στο Β2 ΤΕΛΟΣ

Δυαδική αναζήτηση (Binary search) Αναζητούμε την τιμή key, αν υπάρχει, σταστοιχείατουταξινομημένου πίνακα Α[Ν] Ο αλγόριθμος αυτός στηρίζεται στην διαδοχική αναζήτηση της τιμής κλειδί key σε υποπίνακες, που ο καθένας έχει εύρος μισό από τον προηγούμενο. Όπως και στην γραμμική αναζήτηση, χρησιμοποιείται μια ακέραια μεταβλητή (π.χ. Κ) για την καταχώρηση της θέσης (δείκτη) του στοιχείου του πίνακα που αναζητείται. Σε κάθε υποπίνακα γίνεται σύγκριση του key με το μεσαίο στοιχείο του υποπίνακα. Αν υπάρχει ταύτιση τιμών, η αναζήτηση είναι επιτυχής, καταχωρείται ο δείκτης του στοιχείου στην Κ και ο αλγόριθμος τερματίζει. Αν το μεσαίο στοιχείο έχει τιμή μεγαλύτερη από το key, αυτό σημαίνει ότι το ζητούμενο στοιχείο είναι δυνατόν να βρίσκεται στον πρώτο μισό υποπίνακα (με τιμές μικρότερες του μεσαίου στοιχείου). Αναπροσαρμόζονται τα όρια του υποπίνακα και η αναζήτηση επαναλαμβάνεται στον νέο υποπίνακα, που έχει μέγεθος μισό από τον προηγούμενο. Αντίστοιχα, αν το μεσαίο στοιχείο έχει τιμή μικρότερη από το key, αυτό σημαίνει ότι το ζητούμενο στοιχείο είναι δυνατόν να βρίσκεται στον δεύτερο μισό υποπίνακα (με τιμές μεγαλύτερες του μεσαίου στοιχείου). Αναπροσαρμόζονται τα όρια του υποπίνακα και η αναζήτηση επαναλαμβάνεται στον νέο υποπίνακα. Μετά τον τερματισμό του αλγορίθμου, αν Κ = 1, τότε η τιμή key ΔΕΝ υπάρχει στον πίνακα. Αλλιώς, η τιμήτουκδηλώνειτοπρώτοστοιχείο του πίνακα που έχει τιμή key.

Δυαδική αναζήτηση (Binary search) ΨΕΥΔΟΚΩΔΙΚΑΣ ΑΡΧΗ Β1 Επιτυχία = ΨΕΥΔΗΣ Κ = 1 Αριστερά = 0 Δεξιά = Ν 1 Β2 Εφ όσον (Αριστερά <= Δεξιά ΚΑΙ Επιτυχία = ΨΕΥΔΗΣ) εκτέλεσε: Μέσον = (Αριστερά + Δεξιά) / 2 Β3 Αν (Α[Μέσον] = key), τότε : Επιτυχία = ΑΛΗΘΗΣ Κ = Μέσον Β4 Αλλιώς Αν (Α[Μέσον] > key), τότε : Δεξιά = Μέσον 1 Β5 Αλλιώς Αριστερά = Μέσον + 1 Β6 Επιστροφή στο Β2 ΤΕΛΟΣ

Δυαδική αναζήτηση (Binary search) ΠΑΡΑΔΕΙΓΜΑ Αναζητούμε τον αριθμό 28 στον ταξινομημένο πίνακα (Ν = 13): 16, 17, 22, 28, 36, 43, 49, 55, 69, 72, 73, 88, 91 key = 28 Αρχικές τιμές : Αριστερά = 0, Δεξιά = 12 (εύρος = 13) 1 η επανάληψη : Μέσον = 6 Α[6] = 49 > 28 Αριστερά = 0, Δεξιά = 5 (εύρος = 6) 2 η επανάληψη : Μέσον = 2 Α[2] = 22 < 28 Αριστερά = 3, Δεξιά = 5 (εύρος = 3) 3 η επανάληψη : Μέσον = 4 Α[4] = 36 > 28 Αριστερά = 3, Δεξιά = 3 (εύρος = 1) 4 η επανάληψη : Μέσον = 3 Α[3] = 28 = 28 Αναζήτηση επιτυχής στο στοιχείο Α[3]

Σύγκρισητωναλγορίθμωναναζήτησης Ο αλγόριθμος γραμμικής αναζήτησης χρειάζεται, κατά μέσο όρο, Ν/2 συγκρίσεις όταν η αναζήτηση είναι επιτυχής ή Ν όταν είναι ανεπιτυχής (στην απλή μορφή του). Αντίθετα, ο αλγόριθμος δυαδικής αναζήτησης εκτελεί μόνο μια σύγκριση σε κάθε υποπίνακα. Επομένως, χρειάζεται το πολύ Π συγκρίσεις, όπου 2 Π 1 <= Ν <= 2 Π. Είναι προφανές ότι η διαφορά είναι πολύ μεγάλη, ιδιαίτερα για μεγάλες τιμές του Ν. Για παράδειγμα, κατά την αναζήτηση ενός στοιχείου σε ένα πίνακα μεγέθους 10 6 μπορεί να απαιτηθούν 500 000 συγκρίσεις με τον αλγόριθμο γραμμικής αναζήτησης και μόνο 20, το πολύ, συγκρίσεις με τον αλγόριθμο δυαδικής αναζήτησης.

Παραδείγματα 1. Εύρεση του ΜΚΔ δυο ακεραίων με τον αλγόριθμο του Dijkstra. (pt2006_lect4_example1.cpp) 2. Ταξινόμηση πίνακα ακεραίων που έχει τυχαίους αριθμούς (κρυφούς) και αναζήτηση κάποιου αριθμού που δίνει ο χρήστης. (pt2006_lect4_example2.cpp) 3. Ανάγνωση του ταξινομημένου αρχείου των αποστάσεων sortlen.txt (που δημιουργήθηκε στο pt2006_lect3_example.cpp) και αναζήτηση των εγγραφών που βρίσκονται μεταξύ δύο τιμών a και b που δίνει ο χρήστης. (pt2006_lect4_example3.cpp)