niedziela, 19 października 2008

Na dobry początek - SWAP.

Pierwszym algorytmem, który omówimy będzie SWAP. Brzmi nieco tajemniczo, ale nie ma się czym przejmować. To bardzo prosty i popularny algorytm. Jak działa? To proste - SWAP zamienia miejscami dwa elementy. No tak, zamienia miejscami, ale po co? Otóż algorytm ten jest wykorzystywany m. in. przy sortowaniu danych. Wygląda mniej więcej tak:
Swap(zmienna1, zmienna2)

Jak działa? Otóż tworzy w pamięci trzecią zmienną (pomocniczą). Wartość zmienniej1 przypisuje nowej zmiennej, natomiast wartość zmienniej2 przypisuje zmienniej1. Następnie wartość zmiennej3 przypisuje zmienniej2. Wiem, wiem, brzmi skomplikowanie, ale wcale takie nie jest. Postaramy się to pokazać:
Mamy dwie zmiennie: a = 2 i b = 5.
Algorytm tworzy zmienną pomocniczą: c = 0.
Teraz następuje przypisanie: c = a. {c przyjmuje wartość a, czyli teraz c = 2}
Następnie: a = b. {a przyjmuje wartość b, czyli teraz a = 5}
No i finalnie: b = c. {b przyjmuje wartość c, czyli wcześniejszego a; b = 2}
Efekt: Obie zmienne zamieniły się wartościami. {a = 5, b = 2}

Algorytm prosty i jednocześnie bardzo przydatny. W kolejnych notkach postaramy się pokazać zastosowanie SWAP-a w różnych językach programowania.

Czym są algorytmy?

Z szeroko pojętymi algorytmami każdy z nas spotykał się w swoim życiu już od najmłodszych lat. Nie wierzysz? A robiłeś sobie kiedyś kanapki? "Przepis" jak zrobić te kanapki to właśnie algorytm.
1. Weź kromkę chleba.
2. Posmaruj ją masłem.
3. Połóż na to np. ser/wędlinę.

Z innymi algorytmami spotykaliśmy się już w wieku 6-7 lat. Było nim dodawanie. Naprawdę! A algorytm ten wygląda następująco (dodamy tu 3+2):
1. Masz zaciśniętą rękę.
2. Licząc prostujesz palce.
3. Policz na palcach do 3.
4. Od miejsca w którym skończyłeś liczyć policz jeszcze do 2.
5. Policz od początku ile masz palców wyprostowanych.

Jak widzisz, od zawsze mamy do czynienia z algorytmami. Spytaj się np. mechanika jak On wymienia olej w samochodach. Zależnie od marki samochodu algorytm wymiany oleju silnikowego nieznacznie się zmienia.
Jak widzisz Algorytmy są to przepisy jak coś wykonać. Aby mogły one funkcjonować, muszą składać się ze skończonej liczby instrukcji/kroków. Wyobraźmy sobie powyższy algorytm na robienie kanapki, gdy po kroku 2-gim dodamy krok "wróć do kroku 1".
1. Weź kromkę chleba.
2. Posmaruj ją masłem.
3. Wróć do kroku 1.
4. Połóż na to np. ser/wędlinę.

Teraz nigdy nie dojdziemy do kroku 4-tego. Ponieważ będziemy wiecznie wracać do kroku 1. Dlatego w/w przykład już nie jest algorytmem.

Na tym blogu postaramy się w łatwy i zrozumiały sposób przedstawiać algorytmy informatyczne, a może czasem też matematyczne. Zaczynając od tych najprostszych.