Μάθημα : Aνάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον

Κωδικός : T403104

T403104  -   ΒΑΡΣΟΣ ΔΗΜΗΤΡΙΟΣ

Ενότητες - Σειριακή Αναζήτηση

Σειριακή Αναζήτηση

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

Αλγόριθμος σειριακής (γραμμικής) αναζήτησης για στοιχείο πίνακα που είναι μοναδικό

Παράδειγμα1

Αναζήτηση του στοιχείου (ΚΕΥ) σε έναν πίνακα Α[100]. Το στοιχείο (ΚΕΥ) είναι μοναδικό. Σε περίπτωση που βρεθεί να τυπώνεται η αντίστοιχη θέση του και το μήνυμα "Βρέθηκε", αλλιώς να τυπώνεται το μήνυμα "Δε βρέθηκε".

ΠΡΟΓΡΑΜΜΑ Αναζήτηση1
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: Α[100], i, KEY
ΑΡΧΗ
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 100
     ΔΙΑΒΑΣΕ Α[i]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ 'Δώσε αριθμό για αναζήτηση: '
ΔΙΑΒΑΣΕ KEY
i <- 1
ΟΣΟ Α[i] <> KEY ΚΑΙ i < 100 ΕΠΑΝΑΛΑΒΕ
i <- i + 1
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΑΝ Α[i] = KEY ΤΟΤΕ                  !Σημαίνει ότι βρέθηκε i για το οποίο  το (Α[i] <> KEY  γίνεται Ψευδής) και συνεπώς  Α[i] <> KEY ΚΑΙ i < 100
                                                      !γίνεται Ψευδής και άρα για αυτό σταμάτησε η επανάληψη
ΓΡΑΨΕ 'Βρέθηκε στη θέση:', i
ΑΛΛΙΩΣ                         
! Σημαίνει ότι δεν βρέθηκε i για το οποίο (Α[i] <> KEY  γίνεται Ψευδής) και το i γίνεται 100 
ΓΡΑΨΕ 'Δε βρέθηκε'
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ Αναζήτηση1

Παράδειγμα2 - Με χρήση λογικής μεταβλητής

Αναζήτηση του στοιχείου (ΚΕΥ) σε έναν πίνακα Α[100]. Το στοιχείο (ΚΕΥ) είναι μοναδικό. Σε περίπτωση που βρεθεί να τυπώνεται η αντίστοιχη θέση του και το μήνυμα "Βρέθηκε", αλλιώς να τυπώνεται το μήνυμα "Δε βρέθηκε".

ΠΡΟΓΡΑΜΜΑ Αναζήτηση2
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: Α[100], i, KEY, position

ΛΟΓΙΚΕΣ: done
ΑΡΧΗ
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 100
     ΔΙΑΒΑΣΕ Α[i]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ 'Δώσε αριθμό για αναζήτηση: '
ΔΙΑΒΑΣΕ KEY
i <- 1

done<- ΨΕΥΔΗΣ
position<-0
ΟΣΟ done=ΨΕΥΔΗΣ ΚΑΙ i<=100 ΕΠΑΝΑΛΑΒΕ
  ΑΝ Α[i] = KEY ΤΟΤΕ 
   done<- ΑΛΗΘΗΣ
   position<-i
 ΑΛΛΙΩΣ
    i<-i+1
 ΤΕΛΟΣ_ΑΝ
 ΑΝ done=ΑΛΗΘΗΣ ΤΟΤΕ
    ΓΡΑΨΕ 'Βρέθηκε στη θέση',position
 ΑΛΛΙΩΣ
   ΓΡΑΨΕ 'Δεν βρέθηκε'
 ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ Αναζήτηση2

 

 

Αλγόριθμος σειριακής (γραμμικής) αναζήτησης για στοιχείο πίνακα που υπάρχει περισσότερες από μία φορές

Παράδειγμα1

ΠΡΟΓΡΑΜΜΑ Αναζήτηση2
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ:
Α[100], i, KEY
ΑΡΧΗ
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 100
ΔΙΑΒΑΣΕ Α[i]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ 'Δώσε αριθμό για αναζήτηση στον πίνακα Α:'
ΔΙΑΒΑΣΕ KEY
flag ← ΨΕΥΔΗΣ
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 100
ΑΝ KEY = Α[i] ΤΟΤΕ
flag ← ΑΛΗΘΗΣ
ΓΡΑΨΕ 'Βρέθηκε στη θέση ', i
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΑΝ flag = ΨΕΥΔΗΣ ΤΟΤΕ
ΓΡΑΨΕ 'Δε βρέθηκε'
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ Αναζήτηση2

Παράδειγμα2

Στο παράδειγμα αυτό αποθηκεύουμε τις θέσεις του πίνακα Α, όπου βρίσκουμε το αναζητούμενο στοιχείο KEY σε έναν νέο πίνακα Β και στη συνέχεια εμφανίζουμε τα στοιχεία, στην περίπτωση που υπάρχει έστω και μία φορά το KEY.