Wyszukiwanie liniowe

Wyszukiwanie liniowe

Zadanie do zrobienia:

Powiedzmy, że mamy tablicę array[] która składa się z n elementów.
I teraz naszym zadaniem jest napisać metodę, która znajdzie wybrany przez Nas element w tej tablicy.

Dane:

Powiedzmy, że mamy tablicę z takimi danymi.
Array[] = {30, 60, 80, 90, 130, 150, 210, 260, 400, 460, 20, 90, 50, 330, 220 }

Cel, Założenia:

I szukamy elementu = 50,
Czyli w odpowiedzi powinniśmy dostać indeks tego elementu = 12,

A gdy w tej tablicy będziemy szukać elementu, którego w niej nie ma np. 100
to w odpowiedzi powinniśmy dostać indeks tego elementu = -1
co będzie oznaczać, że takiego elementu nie ma w tablicy.

Rozwiązanie:

Prostym podejściem do wykonania tego zadania jest zrealizowanie wyszukiwania liniowego. Zaczynamy od skrajnego lewego elementu tablicy array[] i po kolei porównujemy element szukany z każdym elementem w tablicy array[].

Jeśli szukany element pasuje do elementu tablicy, to zwracamy indeks tego elementu.
Jeśli szukany element nie pasuje do żadnego z elementów, to zwracamy -1,
co będzie nam mówić, że szukanego elementu nie ma w tablicy.

Implementacja w kodzie C#

public static void Main()
{
   int[] array = { 30, 60, 80, 90, 130, 150, 210, 260, 400, 460, 20, 90, 50, 330, 220 };
   int theElementLookingFor = 50;

   int result = LinearSearch(array, theElementLookingFor);

   if (result == -1)
      Console.WriteLine(@"Element {0} nie występuje w tablicy ", theElementLookingFor);
   else
	Console.WriteLine("Element {0} występuje w tablicy pod indeksem {1}", theElementLookingFor, result);
}

private static int LinearSearch(int[] array, int theElementLookingFor)
{
   for (int i = 0; i < array.Length; i++)
   {
	if (array[i] == theElementLookingFor)
	   return i;
   }
   return -1;
}

Wyjście:

Element 50 występuje w tablicy pod indeksem 12
Element 5012 nie występuje w tablicy

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *