Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
2.
Algorytmy
Wbieżącymrozdzialepodajemypodstawowewiadomościnatematalgorytmów:
sposóbichopisu,elementyskładowe(złożonośćalgorytmu)orazdwiepodstawowe
technikiichtworzenia:iteracjęirekurencję.Pokażemyteżkilkaalgorytmówprzykła-
dowych.Wybranymi,bardziejzaawansowanymi,klasycznymialgorytmamioraz
wybranymistrukturamidanychiichprzetwarzaniemzajmiemysięwdrugiejczęści
podręcznika.
2.1.
Sposóbprzedstawianiaalgorytmów
Przypomnijmyjednązdefinicji,podanąwpoprzednimrozdziale:algorytmto
skończonyciągdobrzezdefiniowanychoperacji,zastosowanychdoskończonejliczby
danychiprowadzącydorozwiązaniaokreślonejklasyzadań.
Sformułowaniendobrzezdefiniowanychoperacji”oznacza,żeopisalgorytmu,
szczególnienapotrzebytworzeniaprogramukomputerowego,musibyćjednoznaczny
iprecyzyjny.Powinienteżbyćjasnyizrozumiały.Wymaganiateoczywiste.Jeżeli
wktórymśmomenciezapisywaniaalgorytmuwjęzykuprogramowaniaprogramista
niebędziewiedział,którączynnośćzapisać(choćbymiałtylkodwiedowyboru),to
programniepowstanie.Jeżelipominiesięważnyszczegółwopisiealgorytmu,to
będzieondziałałbłędnie,podobniejakprogramkomputerowy.Wymaganiejasności
izrozumiałościjestoczywistegdyopisjestzagmatwanylubniezrozumiały,rozwią-
zaniazastosowanewalgorytmietrzebanodkrywaćnanowo”,tracącczas.
Opisalgorytmumożebyćmniejlubbardziejszczegółowy.Projektowaniezaczy-
namyzwykleodokreśleniaogólnychdziałań,dzielącjenastępnienabardziejszcze-
gółowe.Stopieńszczegółowościzależywdużymstopniuodsposobuimplementacji
algorytmu,naprzykładodjęzykaprogramowania,wktórymzostaniezapisany.Opis
algorytmuprogramuzapisywanegowasemblerzemusibyćzdecydowaniebardziej
szczegółowyodprzeznaczonegodozapisaniawjęzykuwyższegopoziomu.
Istniejekilkaklasycznych,powszechniestosowanychsposobówopisudziałania
algorytmu:słowny(tujasnośćizrozumiałośćmożestwarzaćproblemy),wformie
listykroków(jedenzbardziejklarownychsposobów),schematblokowy(raczejdo
mniejrozbudowanychalgorytmów)izapiswwybranymjęzykuprogramowania(tu
mogąprotestowaćmatematycyalgorytmicy,alewspomnianysposóbwpraktycejest
dośćczęstostosowany).Poniżejomawiamykażdyznich,używającjakoprzykładu
algorytmurozwiązywaniarównanialiniowego.