background image

Algorytmy i struktury danych 

Wykład 01 

Witold Kosioski 

wkos@ukw.edu.pl 

01.03.2011 

background image

Literatura podstawowa  

• [1]  T.  H.  Cormen,  Ch.  E.  Leiserson,  R.  L.  Rivest,  Wprowadzenie  do 

algorytmów, WNT, 2005 

• [2] N. Wirth, Algorytmy + Struktury danych = Programy, WNT, 2004 
• [3]  A.  V.  Aho, J.  E.  Hopcroft, J.  D.  Ullman,  Algorytmy  I struktury  danych

Helion, 2003 

• [4]  P.  Wróblewski, Algorytmy struktury  danych  i  techniki  programowania, 

Helion 1996 

• [5] L. Banachowski, K. Diks, W. Rytter, Algorytmy i struktury danych, WNT, 

2006 

• [6] D. Harel, Rzecz o istocie informatyki – Algorytmika, WNT, 2000  
• [7] M.M. Sysło: Algorytmy, WSiP, Warszawa, 1997 
• [8] M.M. Sysło, Konstrukcje algorytmiczne, WSiP. ,Warszawa, 1998 
• [9] Inni, Zbiór zadań do ASD, Wydawnictwo PJWSTK, Warszawa, 2009 

background image

                             

Teraz kilka definicji: 

 

 
•Algorytm to opis obiektów łącznie z opisem czynności jednoznacznie prowadzących 

 do określonego celu

. Algorytm musi posiadać początek i koniec

.  

Chodzi tu o zaznaczenie miejsca, od którego zaczynamy algorytm oraz zaznaczenie miejsca, 
w którym kończymy opis czynności danego algorytmu. Liczba kroków potrzebnych  

do uzyskania określonego celu musi być skończona.   
 

•Algorytm - to przepis rozwiązania zadania, zawierający opis danych wraz z opisem 
czynności, które należy w określonym porządku wykonać z tymi danymi, aby osiągnąć 
zamierzony cel.  

 
•Algorytmem na rozwiązanie postawionego problemu nazywa się przepis  

podający wszystkie czynności, które należy wykonać, by rozwiązać problem w skończonym 
czasie. 
  

•Algorytmika, podstawowy dział informatyki poświęcony poszukiwaniom, 
 konstruowaniu i badaniom algorytmów, zwłaszcza w kontekście 

ich przydatności do rozwiązywania problemów za pomocą komputerów.   

 

background image

 

 

       Cechy algorytmu 

 
 
Algorytm musi być: 
 
Poprawny - 

tzn., dla każdego zestawu danych, po wykonaniu skończonej liczby 

czynności, prowadzi do poprawnych wyników. 
 
Jednoznaczny

, tzn., w każdym przypadku jego zastosowania, dla tych samych danych 

uzyskamy ten sam wynik. 
 
Szczegółowy - aby wykonawca algorytmu rozumiał opisane czynności i potrafił je 
wykonać. 
 
Uniwersalny

, aby posłużył do rozwiązywania pewnej grupy zadań, a nie tylko jednego 

zadania (np. algorytm jest przepisem na rozwiązanie równania postaci ax+b=0 dla 
dowolnych współczynników a i b, a nie - jednego konkretnego równania, np. 2x+3=0. 

 

background image


 

 

do gór 

Etapy rozwiązywania problemów: 

Gdzie pojawia się algorytm? Przy rozwiązywaniu  problemów 

 

 

Etapy rozwiązywania  problemów

 
1. Sformułowanie zadania.  
2. Określenie danych wejściowych.  
3. Określenie celu, czyli wyniku.  
 
4. Poszukiwanie metody rozwiązania, czyli algorytmu. 
 5. Przedstawienie  algorytmu w postaci: 

opisu słownego 

listy kroków 

- schematu blokowego 

jednego z języków programowania 

 
6. Analiza poprawności rozwiązania.  
7. Testowanie rozwiązania dla różnych danych - ocena efektywności przyjętej metody. 

 
 

 

background image

Kolejnośd działao 

WYJŚCIE PRZEZ DRZWI 
1.

Podejdź do drzwi 

2.

Jeśli otwarte, to przejdź. KONIEC 

3.

Naciśnij klamkę. 

4.

Popchnij drzwi.  

5.

Jeśli otwarte, to przejdź. KONIEC 

6.

Pociągnij drzwi do siebie. 

7.

Jeśli otwarte, to przejdź. KONIEC 

8.

Drzwi nietypowe lub zamknięte na 
klucz 

WYJŚCIE PRZEZ DRZWI 
1.

Podejdź do drzwi 

2.

Jeśli otwarte, to przejdź. KONIEC 

3.

Popchnij drzwi.  

4.

Naciśnij klamkę. 

5.

Jeśli otwarte, to przejdź. KONIEC 

6.

Pociągnij drzwi do siebie. 

7.

Jeśli otwarte, to przejdź. KONIEC 

8.

Drzwi nietypowe lub zamknięte na 
klucz 

Algorytm przejścia przez drzwi 

Algorytmika jest kluczową dziedziną wszędzie tam, gdzie wykorzystuje się 

komputery 

background image

Zasady budowy schematu blokowego 

(metajęzyk  algorytmu): 
 
Każda  operacja, relacja lub informacja umieszczona 
jest w skrzynce. 
 
Kolejność wykonywania  operacji wyznaczają 
połączenia  między skrzynkami. 
 
Każde  połączenie  jest zaczepione  początkiem  do 
skrzynki a koniec do innej skrzynki lub innego 
połączenia. 
 
Skrzynki przybierają  kształty: prostokąta, rombu, 
równoległoboku,  okręgu (elipsy). 
 

background image
background image

  START 

 

   STOP 

 

 

 

  

 

  

 

Skrzynki graniczne: 

Skrzynka warunkowa: 

Skrzynka wejścia/wyjścia 

Skrzynka operacyjna 

Schemat blokowy 

background image

Schemat blokowy, przykład algorytmu , który wyznacza 

najmniejszą 

wartośd spośród 3 elementów danego zbioru RÓŻNYCH liczb całkowitych 
a,b,c.