StartAlgorytmyDla początkującychSzukanie zadanego elementu
Baza Wiedzy
Wersja offline serwisu przeznaczona na urządzenia z systemem Android.

Darowizny
darowiznaWspomóż rozwój serwisu


Nagłówki RSS
Kanał artykuły
Kanał implementacje
Kanał komentarze
Kanał forum


Bookmarki









Sonda
Implementacji w jakim języku programowania poszukujesz?
 
Szukanie zadanego elementu
Ocena użytkowników:+++-- / 13
SłabyŚwietny 
Wpisany przez Tomasz Lubiński
piątek, 04 września 2009 19:39
Załóżmy że mamy daną tablicę n-elementów i chcemy odnaleźć w niej element zadany element x. Niech będzie to tablica a o indeksach od 1 do n. Czyli kolejne jej elementy oznaczymy: a[1], a[2], a[3], ..., a[n-1], a[n].

By odnaleźć element x podejmiemy następujące kroki:


Operację odnajdowania elementu w tablicy możemy zapisać następującym schematem blokowym:

schemat blokowy - szukanie elementu w tablicy


Algorytm ten ma złożoność obliczeniową wynoszącą O(n), co oznacza, że czas potrzebny na wyszukanie elementu tą metodą rośnie w sposób liniowy wraz z liniowym wzrostem liczby elementów w przeszukiwanej tablicy. To znaczy, że czas potrzebny na wyszukanie dwa razy większej liczby elementów wzrośnie dwukrotnie.

Przykład:
Niech będzie dana tablica 5-elementowa, a = {4, 6, 2, 1, 3}.
Poszukajmy w niej element x = 2.
Przeglądamy kolejne elementy tablicy:
a[1] = x? 4 nie jest równe 2, przechodzimy do kolejnego elementu,
a[2] = x? 6 nie jest równe 2, przechodzimy do kolejnego elementu,
a[3] = x? 2 jest równe 2, zatem znaleźliśmy szukany element pod indeksem 3,
Poszukajmy teraz element x = 5.
Przeglądamy kolejne elementy tablicy:
a[1] = x? 4 nie jest równe 5, przechodzimy do kolejnego elementu,
a[2] = x? 6 nie jest równe 5, przechodzimy do kolejnego elementu,
a[3] = x? 2 nie jest równe 5, przechodzimy do kolejnego elementu,
a[4] = x? 1 nie jest równe 5, przechodzimy do kolejnego elementu,
a[5] = x? 3 nie jest równe 5, przechodzimy do kolejnego elementu,
To już koniec tablicy, zatem nie ma w niej elementu równego 5.

Przykład w JavaScript:

Podaj szukaną liczbę:



Autor Język programowania Komentarz Otwórz Pobierz Ocena
Tomasz Lubiński C# MS Visual Studio .net
Implementacja w C#
Implementacja w C#
----- / 0
Tomasz Lubiński C/C++
Implementacja w C/C++
Implementacja w C/C++
----- / 0
Albatross201 C/C++ C++
Implementacja w C/C++
Implementacja w C/C++
----- / 0
Marian C/C++ C++
Implementacja w C/C++
Implementacja w C/C++
----- / 0
Krzysztof Sośnierz C/C++ C++ templates
Implementacja w C/C++
Implementacja w C/C++
----- / 0
Tomasz Lubiński Delphi/Pascal
Implementacja w Delphi/Pascal
Implementacja w Delphi/Pascal
++++- / 3
Tomasz Lubiński Java
Implementacja w Java
Implementacja w Java
----- / 0
Jakub Konieczny Java Block
Implementacja w Java Block
Implementacja w Java Block
----- / 0
Dominik Goździuk Java Script
Implementacja w Java Script
Implementacja w Java Script
----- / 0
Dominik Goździuk Perl
Implementacja w Perl
Implementacja w Perl
----- / 0
Dominik Goździuk Php
Implementacja w Php
Implementacja w Php
----- / 0
Jakub Konieczny Python
Implementacja w Python
Implementacja w Python
----- / 0
 
Dodaj własną implementację tego algorytmu
  • Zaloguj się na stronie
Plik:
Język programowania:
Komentarz:
  By móc dodać implementacje zaloguj się na stronie



Poprawiony: niedziela, 04 marca 2012 15:08

Dodaj komentarz

Kod antysapmowy
Odśwież