Τι Είναι η Κλασική Γραμμική Αναζήτηση;
Φαντάσου ότι έχεις μια σειρά από κούκλες σε μια μεγάλη σειρά (όπως μια βιβλιοθήκη με βιβλία). Θέλεις να βρεις μια συγκεκριμένη κούκλα, ας πούμε τη “Χαρούμενη Κούκλα”, αλλά δεν ξέρεις πού ακριβώς είναι.
Η κλασική γραμμική αναζήτηση είναι σαν να ψάχνεις μία-μία τις κούκλες από την αρχή μέχρι το τέλος της σειράς μέχρι να βρεις τη “Χαρούμενη Κούκλα”.
Πώς Λειτουργεί;
- Ξεκινάς από την αρχή: Ξεκινάς να κοιτάς από την πρώτη κούκλα στην σειρά.
- Ελέγχεις μία-μία: Κοιτάς κάθε κούκλα και ελέγχεις αν είναι η “Χαρούμενη Κούκλα”.
- Βρίσκεις ή συνεχίζεις: Αν βρεις την κούκλα που ψάχνεις, σταματάς και λες “Βρήκα την κούκλα!” Αν όχι, συνεχίζεις να κοιτάς τις επόμενες κούκλες.
- Τελειώνεις: Αν δεις όλες τις κούκλες και δεν βρεις τη “Χαρούμενη Κούκλα”, τότε λες “Δεν βρήκα την κούκλα.”
Παράδειγμα στην C#
Ας δούμε πώς μπορείς να κάνεις αυτό στην C# με ένα παράδειγμα:
using System;
public class LinearSearch
{
// Αυτή η μέθοδος ψάχνει για ένα στοιχείο σε έναν πίνακα αριθμών
public static int Search(int[] array, int target)
{
// Ελέγχει κάθε στοιχείο στον πίνακα
for (int i = 0; i < array.Length; i++)
{
// Αν το στοιχείο είναι αυτό που ψάχνουμε, το επιστρέφουμε
if (array[i] == target)
{
return i; // Επιστρέφει τη θέση του στοιχείου
}
}
// Αν δεν βρούμε το στοιχείο, επιστρέφουμε -1
return -1;
}
public static void Main()
{
// Δημιουργούμε έναν πίνακα αριθμών
int[] numbers = { 4, 7, 2, 9, 5, 1 };
// Ψάχνουμε για τον αριθμό 9
int index = Search(numbers, 9);
if (index != -1)
{
Console.WriteLine($"Ο αριθμός 9 βρέθηκε στη θέση {index}.");
}
else
{
Console.WriteLine("Ο αριθμός 9 δεν βρέθηκε.");
}
}
}
Εξήγηση του Κώδικα
- Ο πίνακας αριθμών: Έχουμε έναν πίνακα με αριθμούς.
- Η μέθοδος
Search
: Αυτή η μέθοδος παίρνει έναν πίνακα και έναν στόχο (π.χ., τον αριθμό που ψάχνουμε).- Ψάχνει κάθε αριθμό στον πίνακα για να βρει αν είναι αυτός που ψάχνουμε.
- Αν τον βρει, επιστρέφει τη θέση του αριθμού.
- Αν δεν τον βρει, επιστρέφει -1 για να δείξει ότι ο αριθμός δεν υπάρχει στον πίνακα.
- Στην
Main
: Ψάχνουμε για τον αριθμό 9 στον πίνακα και τυπώνουμε το αποτέλεσμα.
Πλεονεκτήματα και Μειονεκτήματα
- Πλεονεκτήματα:
- Πολύ απλός και εύκολος να κατανοηθεί.
- Δεν χρειάζεται να οργανώσεις τα δεδομένα με ειδικό τρόπο.
- Μειονεκτήματα:
- Μπορεί να είναι αργός αν έχεις πολύ μεγάλο πίνακα, γιατί πρέπει να ελέγχει κάθε στοιχείο ένα-ένα.
Αυτή είναι η βασική ιδέα πίσω από την κλασική γραμμική αναζήτηση. Είναι σαν να ψάχνεις για κάτι στην αταξινόμητη σειρά κούκλων σου, ελέγχοντας μία-μία μέχρι να βρεις αυτό που θέλεις!