JustPaste.it

Algorytmy wyszukujące - wstęp

3bd30908ecaaf8e531f4cb6526a463f6.gif
Wyszukiwanie informacji należy do podstawowych problemów programowania, z którymi spotka się codziennie każdy programista. A oto kilka przykładów, gdzie wyszukiwanie jest niezbędne:
  • Bankowość - wyszukiwanie dłużników, którzy nie spłacają kredytów. Również wyszukiwanie wzorowych klientów. Wyszukanie klienta o podanym numerze konta lub znalezienie numeru konta na podstawie danych osobowych klienta.
  • Sport - na podstawie osiągniętych wyników wyznaczenie trzech kolejnych zwycięzców na pierwsze, drugie i trzecie miejsce.
  • Hotelarstwo - wyszukiwanie wolnych pokoi w danym terminie oraz pokoi zarezerwowanych.
  • Fizyka - wyszukanie w danych pomiarowych wartości spełniających określone wymagania.
  • Chemia - wyszukiwanie związków chemicznych na podstawie ich własności.
  • Kryminalistyka - wyszukiwanie osób o podanych cechach (np. wzrost, waga, rozmiar obuwia, odciski palców, kolor włosów itp.).
  • Samochody - wyszukiwanie właściciela pojazdu na podstawie numeru rejestracyjnego lub określonych cech samochodu (marka, kolor, rok produkcji, numer silnika lub nadwozia, itp.).

Przykłady można mnożyć w nieskończoność. Celem naszego artykułu jest zaznajomienie uczniów z podstawowymi algorytmami wyszukiwania danych w zbiorach uporządkowanych oraz nieuporządkowanych.

6e198071c06190543816597cc410c5f9.gif
W informatyce algorytm wyszukujący otrzymuje na wejściu pewien problem i daje na wyjściu jego rozwiązanie po przetestowaniu pewnej ilości możliwych rozwiązań.

Większość algorytmów rozwiązujących problemy (np. algorytmy gry w szachy, warcaby, karty itp.) są pewnego rodzaju algorytmami wyszukującymi. Zbiór wszystkich możliwych rozwiązań danego problemu nosi nazwę przestrzeni poszukiwań (ang. search space). Najprostszymi algorytmami wyszukującymi są algorytmy naiwne, które stosują najbardziej intuicyjną metodę wyszukiwania w przestrzeni poszukiwań. Wymyślono jednakże bardziej zaawansowane metody wykorzystujące wiedzę na temat samej struktury przestrzeni poszukiwań w celu zmniejszenia ilości czasu traconego na poszukiwania.

Problem wyszukiwania danych jest powiązany z problemem sortowania - duża klasa algorytmów wyszukujących operuje na zbiorach posortowanych. Dlatego polecamy naszym czytelnikom zapoznanie się z artykułem o algorytmach sortujących.

cc4ee5693a7fe2f6759e337845fb0b62.gif

Omawiane tematy są ilustrowane licznymi przykładami prostych programów, które uczeń może pobrać z naszej witryny, przeanalizować oraz uruchomić na swoim komputerze.

8f85370e14ffc50caeabfa1faf8a106e.gif    
   
   

76d8860e343088b6aa19526524218d5f.gif

Przykładowe programy w języku Pascal zostały uruchomione w środowisku Borland Delphi 7.0 Personal Edition, które można darmowo i legalnie ściągnąć z witryny firmy Borland. Gorąco polecamy to rozwiązanie, gdyż uzyskujemy produkt w pełni funkcjonalny i licencjonowany - nie możemy jedynie przy jego pomocy tworzyć aplikacji komercyjnych.

Aby pobrać odpowiednie pliki instalacyjne, musisz zarejestrować się w witrynie firmy Borland. Tutaj znajdziesz dokładną instrukcję procedury rejestracyjnej.

 
       

 

8f85370e14ffc50caeabfa1faf8a106e.gif    
   
   

1ad036833f65892ae117fa8f8b517b37.gif

Przykładowe programy w języku C++ zostały uruchomione w środowisku Borland C++ Builder Personal Edition, które można darmowo i legalnie ściągnąć z witryny firmy Borland. Gorąco polecamy to rozwiązanie, gdyż uzyskujemy produkt w pełni funkcjonalny i licencjonowany - nie możemy jedynie przy jego pomocy tworzyć aplikacji komercyjnych.

Aby pobrać odpowiednie pliki instalacyjne, musisz zarejestrować się w witrynie firmy Borland. Tutaj znajdziesz dokładną instrukcję procedury rejestracyjnej.

 
       

 

8f85370e14ffc50caeabfa1faf8a106e.gif    
   
   

e8a43015e4074dcf6ef04c57bd1831ac.gif

Przykładowe programy w języku Basic zostały uruchomione w środowisku Microsoft Visual Basic 2005 Express Edition, które jest częścią pakietu Visual Studio 2005 Express Edition udostępnionego zupełnie darmowo przez firmę Microsoft. Legalną kopię pakietu Visual Basic możesz pobrać z witryny internetowej firmy Microsoft. Polecamy instalację tego pakietu, gdyż firma Microsoft udostępnia nam nawet darmową licencję na komercyjne wykorzystanie utworzonych w tym systemie programów.

 
       

 

8f85370e14ffc50caeabfa1faf8a106e.gif    
   
   

c42afe859230de84c1a9858e00c3d471.gif

Język Python jest popularnym językiem skryptowym, który jest zarówno prosty w nauce jak i potężny w zastosowaniach. Posiada on wiele ciekawych cech przydatnych dla młodych informatyków. Środowisko programowania w języku Python jest darmowe i ogólnie dostępne ze strony firmowej. W razie problemów, plik instalacyjny (dla instalatora Windows) można również pobrać z naszego serwera. Jednak polecamy ten pierwszy sposób, ponieważ język jest ciągle ulepszany i poprawiany, zatem u producenta dostaniesz zawsze najnowszą wersję.

Instalacja jest bardzo prosta:

  1. Ściągnij na swój dysk twardy plik instalacyjny - u nas jest to python.msi.

  2. Kliknij dwukrotnie myszką w ten plik - powinien zostać uruchomiony instalator Windows.

  3. W okienkach instalacyjnych zaznacz odpowiedni katalog, gdzie ma być zainstalowany Python.

  4. Po instalacji z menu głównego wybieramy IDLE (Python GUI).

  5. W okienku interpretera wybieramy opcję File -> New Window, która otwiera okno edytora.

  6. W oknie edytora wprowadzamy program i uruchamiamy go klawiszem F5. Program można zapisać na dysku i uruchamiać tak, jak każdy inny program w Windows - przez podwójne kliknięcie myszką.

Programy możemy przenosić z naszych stron do edytora poprzez schowek Windows.

 
       

 

8f85370e14ffc50caeabfa1faf8a106e.gif    
   
    5c0e3e23ca6323421f407f5e7598e7bb.gif

Przykłady w języku JavaScript można uruchomić nawet przy pomocy ogólnie dostępnego Notatnika z systemu Windows. Jednakże nie polecamy tego sposobu - my korzystaliśmy z programu Microsoft Frontpage. Aby uruchomić przykłady, należy zaznaczyć na stronie WWW fragment obejmujący tekst programu wraz z odpowiednim kodem HTML, skopiować go do schowka Windows, wkleić do notatnika lub edytora kodu html w programie FrontPage i zapisać na dysku pod dowolną nazwą z rozszerzeniem htm lub html (np. index.html). Tak utworzony plik możemy w dalszej kolejności uruchomić w dowolnej przeglądarce internetowej - najlepiej Internet Explorer. W razie problemów proszę skontaktować się z autorem artykułu.

 
       

 

Ponieważ dostaję dużo listów od nieuważnych czytelników, wyjaśniam, iż prezentowane programy są jedynie przykładami realizacji opisywanych algorytmów w wybranych językach programowania. W żadnym razie nie są one celem artykułu. Celem są ALGORYTMY. Znając algorytm można napisać dobry program w dowolnym języku programowania. Dla uzasadnienia mojej postawy przytoczę znany cytat profesora Donalda Knutha (jednego z największych współczesnych autorytetów w dziedzinie informatyki):

"Languages come and go,
but algorithms stand the test of time
"

Donald Knuth

"Języki programowania pojawiają się i odchodzą,
lecz algorytmy wytrzymują próbę czasu
"

Donald Knuth

Zapraszam do lektury
mgr Jerzy Wałaszek

 

Dokument ten rozpowszechniany jest zgodnie z zasadami licencji
GNU Free Documentation License.

 

Źródło: mgr Jerzy Wałaszek