background image

 

26 

 

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

 

Ένας αλγόριθμος αναζήτησης είναι η διαδικασία της οποίας στόχος είναι η εύρεση ενός 

αντικειμένου με συγκεκριμένες ιδιότητες, μεταξύ μιας συλλογής αντικειμένων, που βρίσκεται 

αποθηκευμένη  σε  μια  δομή  δεδομένων.  Το  πιο  απλό  είδος  αλγορίθμου  αναζήτησης  είναι  η 

γραμμική ή σειριακή αναζήτηση. Η γραμμική αναζήτηση έχει ως είσοδο το αντικείμενο που 

αναζητείται, το οποίο στη συνέχεια συγκρίνεται με όλα τα στοιχεία της λίστας, και δίνει ως 

έξοδο την τιμή true, αν το στοιχείο βρέθηκε στη λίστα και την τιμή false, αν δεν βρέθηκε [30]. 

 

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

είσοδο  και έξοδο  με την γραμμική αναζήτηση, και  είναι ιδιαίτερα χρήσιμη όταν  εξετάζεται 

μεγάλος όγκος δεδομένων. Βασική προϋπόθεση της δυαδικής αναζήτησης είναι η λίστα στην 

οποία  εφαρμόζεται,  να  είναι  ταξινομημένη.  Στη  δυαδική  αναζήτηση  συγκρίνεται  το 

αντικείμενο που αναζητείται με το μεσαίο στοιχείο της λίστας. Από τη σύγκριση αυτή, αν το 

μεσαίο στοιχείο είναι ίδιο με το στοιχείο που αναζητείται, τότε τερματίζεται η αναζήτηση και 

επιστρέφει τιμή true. Αν το μεσαίο στοιχείο είναι μεγαλύτερο από το στοιχείο που αναζητείται 

και  η  ταξινόμηση  έχει  γίνει  με  αύξουσα  σειρά,  τότε  επαναλαμβάνεται  η  διαδικασία  για  το 

μεσαίο στοιχείο του αριστερού μισού της λίστας. Αν το μεσαίο στοιχείο είναι μικρότερο από 

το στοιχείο που αναζητείται, τότε γίνονται οι ίδιες ενέργειες στο δεξί μισό της λίστας. Αν η 

διαδικασία αυτή καταλήξει σε μια υπολίστα, που αποτελείται από ένα στοιχείο, και το στοιχείο 

αυτό δεν είναι αυτό που αναζητείται, τότε επιστρέφεται η τιμή false [30]. 

 

 Συγκρίνοντας  τις  δυο  μεθόδους  η  δυαδική  αναζήτηση  παρουσιάζει  πολυπλοκότητα 

O(logn),  ενώ  η  σειριακή  αναζήτηση  έχει  πολυπλοκότητα  O(n).  Ακόμα  και  στη  χειρότερη 

περίπτωση σε μια λίστα με n στοιχεία η  σειριακή αναζήτηση απαιτεί n επαναλήψεις, ενώ η 

δυαδική αναζήτηση απαιτεί το πολύ n/2+1 επαναλήψεις, καθιστώντας την πολύ πιο αποδοτική 

ειδικά όταν εφαρμόζεται σε μεγάλες λίστες. 

 

Σχήμα 3 Αναζήτηση του γράμματος G σε ταξινομημένη λίστα με δυαδική αναζήτηση και με σειριακή 

αναζήτηση

5

                                                 

5

 Πηγή του σχήματος είναι η ιστοσελίδα 

https://algorithms.tutorialhorizon.com/linear-search-vs-binary-search/. Η 

επίσκεψη έγινε στις 11/5/2020