Przejdź do treści

Wyszukiwanie liniowe

🔗 Opis problemu

Istnienie elementu

Implementacja

fun linearSearch(array: List<Int>, number: Int): Boolean {
  for (el in array) {
    if (el == number) {
      return true
    }
  }

  return false
}

fun main() {
  val array = listOf(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
  val number = 8

  val result = linearSearch(array, number)

  if (result) {
    println("Poszukiwana wartosc jest w liscie")
  } else {
    println("Poszukiwanej wartosci nie ma w liscie")
  }
}

Wyszukiwanie liniowe - istnienie elementu

Opis implementacji

Funkcja linearSearch (linia 1) zwraca jako wynik wartość prawda/fałsz i przyjmuje dwa argumenty: listę do przeszukania oraz wartość poszukiwanego elementu. Na początku funkcji przechodzimy pętlą przez wszystkie kolejne elementy listy (linia 2). Dla każdego elementu sprawdzamy, czy jego wartość jest tą, której szukamy (linia 3). Jeżeli tak, to zwracamy informację o znalezieniu wartości w liście (linia 4). Po przejściu przez wszystkie elementy listy i wyjściu z pętli (tzn. gdy nie znaleźliśmy poszukiwanego elementu) zwracamy wartość false informującą, że poszukiwany element nie znajduje się w liście (linia 8).

W części głównej programu na początku przygotowujemy dane do problemu: listę (linia 12) oraz wartość poszukiwanego elementu (linia 13). Następnie wywołujemy funkcję linearSearch z wcześniej przygotowanymi parametrami i jej wynik zapisujemy w nowej zmiennej result (linia 15). W zależności od wyniku (linia 17) wypisujemy odpowiedni komunikat (linie 18 i 20).

Pozycja elementu

fun linearSearch(array: List<Int>, number: Int): Int {
  for (i in array.indices) {
    if (array[i] == number) {
      return i
    }
  }

  return -1
}

fun main() {
  val array = listOf(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
  val number = 8

  val index = linearSearch(array, number)

  if (index == -1) {
    println("Poszukiwanej wartosci nie ma w liscie")
  } else {
    println("Poszukiwana wartosc znajduje sie pod indeksem $index")
  }
}

Wyszukiwanie liniowe - pozycja elementu

Opis implementacji

Funkcja linearSearch (linia 1) zwraca jako wynik liczbę całkowitą i przyjmuje dwa argumenty: listę do przeszukania oraz wartość poszukiwanego elementu. Na początku funkcji przechodzimy pętlą przez wszystkie kolejne indeksy w liście (linia 2). Dla każdego indeksu sprawdzamy, czy pod tym indeksem w liście znajduje się poszukiwana wartość (linia 3). Jeżeli tak, to zwracamy indeks wartości w liście (linia 4). Po przejściu przez wszystkie indeksy i wyjściu z pętli (tzn. gdy nie znaleźliśmy poszukiwanego elementu) zwracamy wartość \(-1\) informującą, że poszukiwany element nie znajduje się w liście (linia 8).

W części głównej programu na początku przygotowujemy dane do problemu: listę (linia 12) oraz wartość poszukiwanego elementu (linia 13). Następnie wywołujemy funkcję linearSearch z wcześniej przygotowanymi parametrami i jej wynik zapisujemy w nowej zmiennej index (linia 15). W zależności od wyniku (linia 17) wypisujemy odpowiedni komunikat (linie 18 i 20).

Wszystkie pozycje elementu

Implementacja

fun linearSearch(array: List<Int>, number: Int) {
  for (i in array.indices) {
    if (array[i] == number) {
      println(i)
    }
  }
}

fun main() {
  val array = listOf(8, 2, 8, 4, 5, 6, 7, 8, 9, 8)
  val number = 8

  println("Poszukiwana wartosc znajduje sie pod następujacymi indeksami:")
  linearSearch(array, number)
}

Wyszukiwanie liniowe - wszystkie pozycje elementu

Opis implementacji

Funkcja linearSearch (linia 1) nie zwraca wyniku i przyjmuje dwa argumenty: listę do przeszukania oraz wartość poszukiwanego elementu. Na początku funkcji przechodzimy pętlą przez wszystkie kolejne indeksy w liście (linia 2). Dla każdego indeksu sprawdzamy, czy pod tym indeksem w liście znajduje się poszukiwana wartość (linia 3). Jeżeli tak, to wypisujemy ten indeks (linia 4).

W części głównej programu na początku przygotowujemy dane do problemu: listę (linia 10) oraz wartość poszukiwanego elementu (linia 11). Następnie wypisujemy stosowny komunikat (linia 13) i wywołujemy funkcję linearSearch z wcześniej przygotowanymi parametrami (linia 14).