Małe algorytmy

2008-10-08 13:44

Informatyka zna świetne rozwiązania wielu złożonych problemów, takich jak sortowanie czy wyszukiwanie najkrótszej drogi. Użycie tych powszechnie znanych algorytmów – nawet tych najbardziej skomplikowanych – jest zwykle całkiem proste. Albo bowiem dysponujemy już gotową implementacją, albo bez większych problemów możemy takową samodzielnie popełnić – z ewentualnymi usprawnieniami własnymi.

Często jednak zdarza się, że trzeba wymyślić coś znacznie mniejszego, rozwiązującego mniej modelowy, ale za to bardziej praktyczny problem. Niepotrzebne jest wtedy arcydzieło algorytmiki, lecz coś, co po prostu będzie dobrze działać. Osobiście uważam, że opracowywanie właśnie takich małych rozwiązań jest jedną z najciekawszych rzeczy w programowaniu w ogóle.
Przykłady? Jest ich tak dużo i są tak odmienne od siebie, że chyba niemożliwe jest podanie choćby kilku odpowiednio reprezentatywnych. Może to być krótki kod parsujący jakiś prosty tekst i wyciągający z niego pewnie informacje. Może to być metoda na przeskalowanie obrazka z zachowaniem jego aspektu (ilorazu szerokości do wysokości). Może to być również kod pozycjonujący jakąś kontrolkę wewnątrz okna o zmiennym rozmiarze. Może też chodzić o wyznaczenie rezultatu pojedynczego ataku w turowej grze strategicznej czy RPG. A nawet o, jak to ktoś ładnie nazwał, “silnik do pauzy” w owej grze ;] I tak dalej…

Niby nic skomplikowanego, czasami wręcz oczywistego – a jednak przecież trzeba to w miarę potrzeb wymyślać i zakodowywać. Bo gotowych rozwiązań problemów tak specyficznych po prostu nie ma. A bez takich małych algorytmów nie działałby żaden program – także ten, który musi używać również i tych “dużych” rozwiązań.
Może więc właśnie tutaj tkwi istota programowania?… Kto wie :)

Tags:
Author: Xion, posted under Programming, Thoughts »


5 comments for post “Małe algorytmy”.
  1. Zene:
    October 8th, 2008 o 19:07

    Ale o co chodzi..? ;)

  2. Paweł (dRaiser):
    October 8th, 2008 o 20:30

    Racja, pisanie takich właśnie maluchów jest jedną z przyjemniejszych rzeczy w kodzeniu, a jednocześnie to one mogą zawiesić projekt na miesiące – więc… :)

  3. Riddlemaster:
    October 9th, 2008 o 9:57

    Dokładnie. “Duże” algorytmy operują na wyższym poziomie scalając całą aplikację lub jakieś jej moduły, funkcjonalności. Natomiast “małe” są jej najmniejszymi klockami.

  4. WiemBoJem:
    October 9th, 2008 o 23:41

    No wlasnie ze jest raczej na odwrot. To duze algorytmy sa niejako modulami, czyli takimi kulkami, zas te male to te wiazania ktore utrzymuja czerwone korale razem w kupie … chociaz moze “przy piersi” posiada lepszy oddzwiek ;-)
    A jak wiadomo wybor odpowiedniego kleju do odpowiedniego zastosowania przeswiadcza o sukcesie lub porazce, ale i tak sie znajda tacy ktorzy do wszystkiego wykorzystuja tasmy izolacyjnej ;-)
    Sensem programowania nie jest wykorzystanie duzych algorytmow do rozwiazania prostych problemow, lecz takie wykorzystanie duzych algorytmow, polaczonych malymi przetworzeniami danych miedzy saba, aby rozwiazywaly duze problemy.
    Takim malym problem jest przykladowo przycisk, duzym bedzie cale gui z dynamicznie wyswietlanymi przyciskami o donamicznej pozycji w zaleznosci od wielkosci okna.
    Taki przynajmniej jest moj grosz na ten temat.

  5. Reg:
    October 12th, 2008 o 12:20

    Doszedłeś do tego samego wniosku co ja kiedyś. Ja to sobie nazwałem “elementarne algorytmy” i uważam (co nieraz na swoim blogu podkreśliłem), że nie poświęca się im dostatecznie dużej uwagi. Przez to każdy programista musi je gdzieś zobaczyć “przy okazji”, zamiast się ich porządnie skądś nauczyć. Zacząłem nawet spisywać takie algorytmy w artykuł, ale to by wymagało miesięcy pisania, więc porzuciłem ten pomysł.

Comments are disabled.
 


© 2017 Karol Kuczmarski "Xion". Layout by Urszulka. Powered by WordPress with QuickLaTeX.com.