29
Strukture podataka i algoritmi Prof. Jelena Ignjatović UNIVERZITET U NIŠU PRIRODNO MATEMATIČKI FAKULTET

UNIVERZITET U NIŠU PRIRODNO MATEMATIČKI · PDF file · 2012-10-23Strukture podataka i algoritmi Prof. Jelena Ignjatović UNIVERZITET U NIŠU PRIRODNO – MATEMATIČKI FAKULTET

  • Upload
    ngocong

  • View
    234

  • Download
    6

Embed Size (px)

Citation preview

Page 1: UNIVERZITET U NIŠU PRIRODNO MATEMATIČKI  · PDF file · 2012-10-23Strukture podataka i algoritmi Prof. Jelena Ignjatović UNIVERZITET U NIŠU PRIRODNO – MATEMATIČKI FAKULTET

Strukture podataka i algoritmi

Prof. Jelena Ignjatović

UNIVERZITET U NIŠU PRIRODNO – MATEMATIČKI FAKULTET

Page 2: UNIVERZITET U NIŠU PRIRODNO MATEMATIČKI  · PDF file · 2012-10-23Strukture podataka i algoritmi Prof. Jelena Ignjatović UNIVERZITET U NIŠU PRIRODNO – MATEMATIČKI FAKULTET

OvervievMatemati cki algoritmi

Uvodno predavanjeNacrt TemeAnaliza algoritamaImplementacija algoritama

Uvod

Cilj ovog kursa jeste da vam predstavi i upozna vas sa širokimspektrom važnih i korisnih algoritama i metoda za rešavanjeproblema na nacin pogodan za primenu na racunaru.Srešcemo se sa razlicitim oblastima primene algoritama, uvekpokušavajuci da se koncentrišemo na "fundamentalne"algoritme koje je važno znati kao osnovu za rešavanje razlicitihproblema.Ukratko, naš cilj je da naucimo veliki broj algoritama korisnih zarad na racunarima. Da bi se dobro razumelo kako algoritamradi najbolje je da se implementira. Shodno tome, najboljastrategija za razumevanje programa je da se on implementira itestira, da se isprobaju varijante tog programa i da se oneprimene na realne probleme.

Uvodno predavanje Strukture podataka i algoritmi

Page 3: UNIVERZITET U NIŠU PRIRODNO MATEMATIČKI  · PDF file · 2012-10-23Strukture podataka i algoritmi Prof. Jelena Ignjatović UNIVERZITET U NIŠU PRIRODNO – MATEMATIČKI FAKULTET

OvervievMatemati cki algoritmi

Uvodno predavanjeNacrt TemeAnaliza algoritamaImplementacija algoritama

Algoritmi

Koristicemo pseudokod za pisanje algoritama, ali se našiprogrami lako mogu prevesti na vecinu savremenihprogramskih jezika.Takodje, ovi algoritmi imaju neke veze sa osnovnim algoritmimana jednostavnim strukturama podataka, kao što su nizovi,quiovi, redovi, i stabla. (Mi cemo se pozabaviti nekimproblemima i operacijama na ovim strukturama, radi njihoveprimene u rešavanju konkretnih problema.)Osnovno upoznavanje sa organizacijom mašina i arhitekturomapstraktnih racunara je takodje sastavni deo ovog kursa.Nekoliko oblasti kojima cemo se baviti zahtevaju poznavanjeosnova teorije brojeva. Takodje cemo koristiti neke osnovelinearne algebre, diskretne matematike i graf teorije.

Uvodno predavanje Strukture podataka i algoritmi

Page 4: UNIVERZITET U NIŠU PRIRODNO MATEMATIČKI  · PDF file · 2012-10-23Strukture podataka i algoritmi Prof. Jelena Ignjatović UNIVERZITET U NIŠU PRIRODNO – MATEMATIČKI FAKULTET

OvervievMatemati cki algoritmi

Uvodno predavanjeNacrt TemeAnaliza algoritamaImplementacija algoritama

Algoritmi(cont.)

Kada neko piše kompjuterski program, on obicno sprovodimetodu rešavanja problema koju je ranije video ili osmislio.Termin algoritam se univerzalno koristi u racunarstvu zaopisivanje rešavanja problema metodama pogodnim zaprimenu, kao i za opis kompjuterskih programa. Algoritmi su"stvari" za racunarske nauke: one su glavni predmetiproucavanja u mnogim poljima izracunavanja.Vecina algoritama obuhvata složene metode organizacijeukljucenih podataka. Objekti nastali na ovaj nacin nazivaju sestrukture podataka, a oni su glavni predmeti proucavanja uracunarstvu. Stanovište je da strukture podataka nastaju kaonusprodukti (endproducts) algoritama. Jednostavni algoritmimogu dovesti do komplikovanih struktura podataka i, obrnuto,komplikovani algoritmi mogu da koriste jednostavne podatke.

Uvodno predavanje Strukture podataka i algoritmi

Page 5: UNIVERZITET U NIŠU PRIRODNO MATEMATIČKI  · PDF file · 2012-10-23Strukture podataka i algoritmi Prof. Jelena Ignjatović UNIVERZITET U NIŠU PRIRODNO – MATEMATIČKI FAKULTET

OvervievMatemati cki algoritmi

Uvodno predavanjeNacrt TemeAnaliza algoritamaImplementacija algoritama

Algoritmi(cont.)

Kada treba da se razvije veliki kompjuterski program, mnogotruda mora da se uloži u razumevanje i definisanje problemakoji treba rešiti, a zatim ga treba razložiti na manje podzadatkekoji se mogu lako implementirati.Medutim, postoje neki algoritmi, ciji je izbor kritican, jer se trošiveliki deo sistemskih resursa radi tih algoritama. Korišcenjejednostavne verzije osnovnih algoritama nam pomaže da boljerazumemo složene algoritme i na taj nacin naucimo da ihkoristimo.Pri izradi algoritama uvek treba težiti optimizaciji. U vecinisituacija relativno jednostavna implementacija biti dovoljna:programeru je važno da radi, a implementacija je dobra akoradi samo pet ili deset puta sporije od najbolje moguce verzije(to su razlike možda u delicu sekunde).

Uvodno predavanje Strukture podataka i algoritmi

Page 6: UNIVERZITET U NIŠU PRIRODNO MATEMATIČKI  · PDF file · 2012-10-23Strukture podataka i algoritmi Prof. Jelena Ignjatović UNIVERZITET U NIŠU PRIRODNO – MATEMATIČKI FAKULTET

OvervievMatemati cki algoritmi

Uvodno predavanjeNacrt TemeAnaliza algoritamaImplementacija algoritama

Algoritmi(cont.)

Nasuprot tome, pravilan izbor algoritma može da napravirazliku od nekih verzija sto, hiljadu ili više puta, pa se razlike uvremenu izvršavanja mere u minutima, satima, pa i danima.U ovom kursu koncentrisacemo se na najjednostavnijerazumne implementacije važnijih i boljih algoritama.Cesto je nekoliko razlicitih algoritama (ili implementacija) naraspolaganju za rešavanje istog problema. Izbor najboljegalgoritma za odredeni zadatak može biti veoma komplikovanproces, koji cesto ukljucuje sofisticirane matematicke analize.Grana kompjuterskih nauka, gde se izucavaju takva pitanja sezove analiza algoritama.

Uvodno predavanje Strukture podataka i algoritmi

Page 7: UNIVERZITET U NIŠU PRIRODNO MATEMATIČKI  · PDF file · 2012-10-23Strukture podataka i algoritmi Prof. Jelena Ignjatović UNIVERZITET U NIŠU PRIRODNO – MATEMATIČKI FAKULTET

OvervievMatemati cki algoritmi

Uvodno predavanjeNacrt TemeAnaliza algoritamaImplementacija algoritama

Nacrt Teme

Za neke algoritame koje cemo posmatrati kroz analizu sepokazalo da imaju veoma dobre performanse, dok se za drugejednostavno zna da dobro rade kroz iskustvo. Naš cilj je danaucimo neke optimalne algoritame za rešavanje važnijihproblema.Ovaj kurs ima za cilj da pokrije što veci broj osnovnihalgoritama. Neke od oblasti koje su pokrivene su "jezgro"racunarskih nauka i bacicemo akcenat na neke osnovnealgoritme široke primene.Takodje cemo se dotaci drugih disciplina za napredne studije uoblasti racunarstva (kao što su numericka analiza, operacionaistraživanja i izgradnja compilera): u ovim slucajevima cemo,kroz ispitivanje nekih osnovnih metoda, dati uvod zaistraživanje u ovim oblastima.

Uvodno predavanje Strukture podataka i algoritmi

Page 8: UNIVERZITET U NIŠU PRIRODNO MATEMATIČKI  · PDF file · 2012-10-23Strukture podataka i algoritmi Prof. Jelena Ignjatović UNIVERZITET U NIŠU PRIRODNO – MATEMATIČKI FAKULTET

OvervievMatemati cki algoritmi

Uvodno predavanjeNacrt TemeAnaliza algoritamaImplementacija algoritama

Nacrt Teme(cont.)

MATEMATICKI ALGORITMI

MATEMATICKI ALGORITMI obuhvataju osnovne metode izaritmetike i numericke analize. Tu su metode za sabiranje imnoženje celih brojeva, polinoma, i matrica, kao i algoritmi zarešavanje razlicitih matematickih problema koji se javljaju umnogim kontekstima: generisanje slucajnog broja, rešavanjelinearne jednacine, montaža i integracija podataka . Naglasakcemo staviti na algoritamske aspekte ovih metoda, a ne namatematicku osnovu.

Uvodno predavanje Strukture podataka i algoritmi

Page 9: UNIVERZITET U NIŠU PRIRODNO MATEMATIČKI  · PDF file · 2012-10-23Strukture podataka i algoritmi Prof. Jelena Ignjatović UNIVERZITET U NIŠU PRIRODNO – MATEMATIČKI FAKULTET

OvervievMatemati cki algoritmi

Uvodno predavanjeNacrt TemeAnaliza algoritamaImplementacija algoritama

Nacrt Teme(cont.)

ALGORITMI SORTIRANJAMETODE SORTIRANJA preuredjuju fajlove u red, po dubini,prema njihovoj suštinskoj važnosti i na osnovu razlicitihkriterijuma. Razlicite metode su razvijene, opisane, iuporedjene. Posmatracemo algoritme za nekoliko bliskihproblema, ukljucujuci ubacivanje, brisanje, uporedjivanje, izbor,spajanje elemenata u que, stek, listu itd. Neki od ovihalgoritama se koriste kao osnova za druge algoritme koje cemoobradjivati kasnije.

Uvodno predavanje Strukture podataka i algoritmi

Page 10: UNIVERZITET U NIŠU PRIRODNO MATEMATIČKI  · PDF file · 2012-10-23Strukture podataka i algoritmi Prof. Jelena Ignjatović UNIVERZITET U NIŠU PRIRODNO – MATEMATIČKI FAKULTET

OvervievMatemati cki algoritmi

Uvodno predavanjeNacrt TemeAnaliza algoritamaImplementacija algoritama

Nacrt Teme(cont.)

ALGORITMI PRETRAŽIVANJAMETODE PRETRAGE koje se koriste za pronalaženje stvari udatotekama su takodje od fundamentalnog znacaja. Mi cemoobraditi osnovne metode za pretraživanje stabala itransformaciju digitalnog kljuca , ukljucujuci pretraživanjebinarnih stabala, balansiranih stabala, heširanje itd. Ovemetode su medjusobno povezane i, na neki nacin, slicnemetodama sortiranja.

Uvodno predavanje Strukture podataka i algoritmi

Page 11: UNIVERZITET U NIŠU PRIRODNO MATEMATIČKI  · PDF file · 2012-10-23Strukture podataka i algoritmi Prof. Jelena Ignjatović UNIVERZITET U NIŠU PRIRODNO – MATEMATIČKI FAKULTET

OvervievMatemati cki algoritmi

Uvodno predavanjeNacrt TemeAnaliza algoritamaImplementacija algoritama

Nacrt Teme(cont.)

ALGORITMI ZA OBRADU STRINGOVASTRING PROCESSING algoritmi obuhvataju metode koje sesuocavaju sa (dugackim) nizovima karaktera. Pretraživanjestringova ima primenu u savremenim metodama pretraživanjašablona (Pattern Matching) koje je vrlo aktuelna grana analize.Tehnike komprimovanje datoteka sa primenom u kriptologije sutakode uzeti u obzir.

Uvodno predavanje Strukture podataka i algoritmi

Page 12: UNIVERZITET U NIŠU PRIRODNO MATEMATIČKI  · PDF file · 2012-10-23Strukture podataka i algoritmi Prof. Jelena Ignjatović UNIVERZITET U NIŠU PRIRODNO – MATEMATIČKI FAKULTET

OvervievMatemati cki algoritmi

Uvodno predavanjeNacrt TemeAnaliza algoritamaImplementacija algoritama

Nacrt Teme(cont.)

GRAFOVSKI ALGORITMIGRAFOVSKI ALGORITMI su korisni za rešavanje raznih teškihi važnih problema. Opšta strategija za pretraživanje u grafovimaje razvijena i primenjena na fundamentalne problemepovezivanja, ukljucujuci i najkraci put, minimalno razapinjucestablo, dužinu najkraceg puta, mredni protok, i podudaranja.Opet, ovo je samo uvod u prilicno naprednu oblast izucavanja.

Naš izazov je da razumemo i cenimo i duge i složene, ijednostavne i elegantne algoritme, prema kontekstu razlicitihpotencijalnih podrucja primene.Cineci to, mi cemo istražiti razlicite korisne alatke i razviti nacin"algoritamskog razmišljanja" koji ce nam koristiti za programskeizazove koji dolaze.

Uvodno predavanje Strukture podataka i algoritmi

Page 13: UNIVERZITET U NIŠU PRIRODNO MATEMATIČKI  · PDF file · 2012-10-23Strukture podataka i algoritmi Prof. Jelena Ignjatović UNIVERZITET U NIŠU PRIRODNO – MATEMATIČKI FAKULTET

OvervievMatemati cki algoritmi

Uvodno predavanjeNacrt TemeAnaliza algoritamaImplementacija algoritama

Analiza algoritama

Za mnoge probleme postoji više razlicitih, mogucih algoritama.Kako odabrati najbolju implementaciju? Ovo je dosta razvijenaoblast kompjuterskih nauka. Medjutim, uporedjivanjealgoritama zaista može biti korisno i može da da neke opštesmernice.Obicno problemi koje rešavamo imaju prirodnu "velicinu"(obicno se odnosi na kolicinu podataka koji se obraduju) i onase oznacava sa N. Želimo da znamo resurse koji se koriste(najcešce se uzima vreme) u funkciji od N. Zainteresovani smoza prosecan slucaj, kada ocekivano vreme programa zavisi od"tipicnih" ulaznih podataka, a u najgorem slucaju, vremepotrebno za implementaciju programa zavisi od ulaza koji imanajgoru mogucu konfiguraciju.

Uvodno predavanje Strukture podataka i algoritmi

Page 14: UNIVERZITET U NIŠU PRIRODNO MATEMATIČKI  · PDF file · 2012-10-23Strukture podataka i algoritmi Prof. Jelena Ignjatović UNIVERZITET U NIŠU PRIRODNO – MATEMATIČKI FAKULTET

OvervievMatemati cki algoritmi

Uvodno predavanjeNacrt TemeAnaliza algoritamaImplementacija algoritama

Analiza algoritama(cont.)

Vecina algoritama ima primarni parametar N, koji obicno brojistavke podataka za obradu, cime utice na vreme. Parametar Nmože da bude stepen polinoma, velicina datoteke koju trebasortirati ili pretražiti, broj cvorova u grafu, itd. Gotovo svialgoritmi, koje cemo obraditi, imaju vreme izvršavanjasrazmerno jednoj od sledecih funkcija:

1 Vecina instrukcija vecine programa se izvršava jednom ilinajviše samo nekoliko puta. Ako sve instrukcije programaimaju ovu osobinu, kažemo da je vreme izvršenjakonstantno. Ovo je, ocigledno, situacija vezana za dizajnalgoritma.

Uvodno predavanje Strukture podataka i algoritmi

Page 15: UNIVERZITET U NIŠU PRIRODNO MATEMATIČKI  · PDF file · 2012-10-23Strukture podataka i algoritmi Prof. Jelena Ignjatović UNIVERZITET U NIŠU PRIRODNO – MATEMATIČKI FAKULTET

OvervievMatemati cki algoritmi

Uvodno predavanjeNacrt TemeAnaliza algoritamaImplementacija algoritama

Analiza algoritama(cont.)

log N Kada je vreme programa logaritamsko, program seizvršava malo sporije nego što N raste. Ovo vremeizvršenja obicno imaju programi koji rešavaju veliki problemtransformišuci ga u manji problem secenjem velicine nekimkonstantnim razlomkom. Za nas je interesantno, kada sevreme može smatrati manjim od "VELIKE" konstante.Osnova logaritma menja se za konstantu, ali ne mnogo:kada je N hiljadu, log N je 3 ako je baza 10, 10 ako je baza2. Kada je N milion, vrednost log N je duplo veca. Kad godse N duplira, log N se povecava za konstantu, ali se log Nne duplira dok se N povecava do na N2.

Uvodno predavanje Strukture podataka i algoritmi

Page 16: UNIVERZITET U NIŠU PRIRODNO MATEMATIČKI  · PDF file · 2012-10-23Strukture podataka i algoritmi Prof. Jelena Ignjatović UNIVERZITET U NIŠU PRIRODNO – MATEMATIČKI FAKULTET

OvervievMatemati cki algoritmi

Uvodno predavanjeNacrt TemeAnaliza algoritamaImplementacija algoritama

Analiza algoritama(cont.)

N Vreme izvršenja programa je linearno obicno, u slucajukada se svaki ulazni podatak malo obradjuje. Kada je Nmilion, to je i vreme izvršenja. Sa dupliranjem N duplira sei vreme izvršenja. Tako je, optimalna situacija za ovajalgoritam, procesiranje N ulaza, kada se proizvodi Nizlaza.

N log N Ovo je vreme izvršenja algoritama koji rešavaju problemrazlažuci ga na manje podprobleme, koji se nezavisnorešavaju, a zatim se kombinuju njihova rešenja. Zbognedostatka boljih karakteristika, recicemo da je vremeizvršenja algoritma N log N (kada je N milion, tada jeN log N možda dvanaest miliona).

Uvodno predavanje Strukture podataka i algoritmi

Page 17: UNIVERZITET U NIŠU PRIRODNO MATEMATIČKI  · PDF file · 2012-10-23Strukture podataka i algoritmi Prof. Jelena Ignjatović UNIVERZITET U NIŠU PRIRODNO – MATEMATIČKI FAKULTET

OvervievMatemati cki algoritmi

Uvodno predavanjeNacrt TemeAnaliza algoritamaImplementacija algoritama

Analiza algoritama(cont.)

N2 Algoritmi cije je vreme izvršenja kvadratno, prakticno seprimenjuju za rešavanje relativno malog broja problema.Kvadratno vreme izvršenja tipicno je za algoritme kojiobradjuju parove elemenata (tacaka), a ponekad idvostruko ugnježdene petlje. Kada je N hiljadu, vremeizvršenja je milion. (Kada se N duplira, vreme seucetvorostrucuje.)

N3 Slicno, algoritam koji procesira trojke podataka (moždatrostruko-ugnježdene petlje) ima kubno vreme izvršenja iprakticno se upotrebljava samo na male probleme. Kadase N duplira, vreme izvršenja se osmostrucuje.

Uvodno predavanje Strukture podataka i algoritmi

Page 18: UNIVERZITET U NIŠU PRIRODNO MATEMATIČKI  · PDF file · 2012-10-23Strukture podataka i algoritmi Prof. Jelena Ignjatović UNIVERZITET U NIŠU PRIRODNO – MATEMATIČKI FAKULTET

OvervievMatemati cki algoritmi

Uvodno predavanjeNacrt TemeAnaliza algoritamaImplementacija algoritama

Analiza algoritama(cont.)

2N Nekoliko algoritama sa eksponencijalnim vremenomizvršenja su, verovatno, pogodni za prakticnu upotrebu,obzirom da se ovi algoritmi prirodno dostižu. Kada je Ndvanaest, vreme izvršenja je milion, a kada se N duplira,vreme je cetvorostruko.

Uvodno predavanje Strukture podataka i algoritmi

Page 19: UNIVERZITET U NIŠU PRIRODNO MATEMATIČKI  · PDF file · 2012-10-23Strukture podataka i algoritmi Prof. Jelena Ignjatović UNIVERZITET U NIŠU PRIRODNO – MATEMATIČKI FAKULTET

OvervievMatemati cki algoritmi

Uvodno predavanjeNacrt TemeAnaliza algoritamaImplementacija algoritama

Implementacija algoritama

Naš ce cilj biti da pokušamo da identifikujemo one algoritmekoji, verovatno, daju najbolje rezultate za datu vrstu ulaza i datuprimenu. Najcešca greška koja se pravi u izboru algoritma jeignorisanje izvršenja karakteristika. Brži algoritmi su cestokomplikovaniji, a implementatori su cesto spremni da prihvatesporiji algoritam kako bi izbegli dodatnu složenost(kompleksnost). Medjutim, cest je slucaj da brži algoritam nijezaista mnogo komplikovaniji, i suocavanje sa malom dodatnomkompleksnošcu je mala cena koju treba platiti kako bi seizbegla sporost algoritma.Iznenadjujuce veliki broj korisnika racunarskih sistema gubiznacajno vreme cekajuci da se izvrše jednostavni kvadratnialgoritmi, dok su im dostupni samo malo komplikovaniji N log Nkoji se mogu pokrenuti u delicu vremena.

Uvodno predavanje Strukture podataka i algoritmi

Page 20: UNIVERZITET U NIŠU PRIRODNO MATEMATIČKI  · PDF file · 2012-10-23Strukture podataka i algoritmi Prof. Jelena Ignjatović UNIVERZITET U NIŠU PRIRODNO – MATEMATIČKI FAKULTET

OvervievMatemati cki algoritmi

Uvodno predavanjeNacrt TemeAnaliza algoritamaImplementacija algoritama

Implementacija algoritama(cont.)

Druga najcešca greška koja se pravi u izboru algoritma je da sepreviše pažnje obraca na izvršavanje karakteristika. N log Nalgoritam može da bude samo nešto komplikovaniji negokvadratni algoritam, za isti problem, ali bolji N log N algoritammože dovesti do znatnog povecanja složenosti (i zapravo možeda radi brže samo za veoma velike vrednosti N). Mnogiprogrami se pokrecu samo nekoliko puta: vreme potrebno dase implementira i debuguje optimizovani algoritam ponekadmože biti znatno duže nego vreme koje je potrebno zapokretanje samo nešto sporijeg algoritma.

Uvodno predavanje Strukture podataka i algoritmi

Page 21: UNIVERZITET U NIŠU PRIRODNO MATEMATIČKI  · PDF file · 2012-10-23Strukture podataka i algoritmi Prof. Jelena Ignjatović UNIVERZITET U NIŠU PRIRODNO – MATEMATIČKI FAKULTET

Šta je algoritam? • Abu Ja'far Mohammed ibn

Musa al Khowarizmi

– (Muhamed, sin Muse iz Khwarizma)

• rođen u mestu Khwarizm, u Uzbekistanu oko 780. g.

• umro je u Bagdadu, oko 850 godine.

• jedan od 10 najcenjenijih matematičara svih vremena

Page 22: UNIVERZITET U NIŠU PRIRODNO MATEMATIČKI  · PDF file · 2012-10-23Strukture podataka i algoritmi Prof. Jelena Ignjatović UNIVERZITET U NIŠU PRIRODNO – MATEMATIČKI FAKULTET

Šta je algoritam?

• Potiče od korišćenja Hindu-arapskih brojeva (pogrešno smatranih arapskim izumom - veće zasluge imaju Indijci),

• Al Khowarizmi uvodi nulu

• oko 825 godine napisao je knjigu

Hidab al-jabr w'al-muqubala

(Nauka o prenošenju i poništavanju)

jabr (JAH-ber) - prenošenje na suprotnu stranu jednačine

x - 2 = 12 x = 12 + 2

Page 23: UNIVERZITET U NIŠU PRIRODNO MATEMATIČKI  · PDF file · 2012-10-23Strukture podataka i algoritmi Prof. Jelena Ignjatović UNIVERZITET U NIŠU PRIRODNO – MATEMATIČKI FAKULTET

muqubala (moo-KAH-ba-lah) - potiranje jednakih izraza sa leve i desne strane jednačine x + y = y + 7 x = 7

al-jabr -> algebra

• Verovao da se svaki matematički problem može raščlaniti na korake, tj. na nizove pravila.

• U latinskom prevodu knjiga iz 12. veka ispred svakog pravila piše: – Dixit Algorizmi - rekao je Al Kowarzimi

algoritam glasi

• U početku, algoritmom se nazivaju samo pravila računanja sa brojevima, a kasnije i pravila rešavanja ostalih zadataka u matematici

Page 24: UNIVERZITET U NIŠU PRIRODNO MATEMATIČKI  · PDF file · 2012-10-23Strukture podataka i algoritmi Prof. Jelena Ignjatović UNIVERZITET U NIŠU PRIRODNO – MATEMATIČKI FAKULTET

Situacija vremenom počinje da se menja, napredak mnogih računarskih sistema ogleda se u njihovoj sposobnosti da brzo i precizno obavljaju numerička izračunavanja. Računari dobijaju ugradjene mogućnosti da obavljaju aritmetičke operacije na celim brojevima kao i reprezentaciju realnog broja. Algoritmi ulaze u igru sa zahtevom da se operacije prošire na komplikovanije matematičke objekte, kakvi su polinomi i matrice.

• u XX veku, sa pojavom računara, pojam se proširuje na računarstvo, a zatim i na druga oblasti nauke

Page 25: UNIVERZITET U NIŠU PRIRODNO MATEMATIČKI  · PDF file · 2012-10-23Strukture podataka i algoritmi Prof. Jelena Ignjatović UNIVERZITET U NIŠU PRIRODNO – MATEMATIČKI FAKULTET

Algoritam

• Precizno opisan postupak rešavanja nekog problema

• Jednoznačno određuje sve korake u postupku rešavanja

• Moraju se definisati početni objekti koji pripadaju nekoj klasi objekata na kojima se obavljaju operacije

• Kao ishod algoritma mogu se pojaviti završni objekat ili rezultat.

• Konačan broj koraka; svaki korak je opisan instrukcijom

• Algoritamski proces je rad algoritma

• Upotrebljiv, ako se dobije rezultat u konačnom vremenu

Page 26: UNIVERZITET U NIŠU PRIRODNO MATEMATIČKI  · PDF file · 2012-10-23Strukture podataka i algoritmi Prof. Jelena Ignjatović UNIVERZITET U NIŠU PRIRODNO – MATEMATIČKI FAKULTET

Procedura

Algoritam

Procedura

Postupak koji ima sva svojstva kao i algoritam, ali ne mora da se završi u konačnom broju koraka naziva se procedura. U jeziku C to može biti void funkcija Vrijeme izvođenja mora biti "razumno" Primer:

Algoritam koji bi izabirao potez igrača u šahu tako da ispita sve moguće posledice poteza, zahtevao bi milijarde godina na najbržem zamislivom računaru.

Page 27: UNIVERZITET U NIŠU PRIRODNO MATEMATIČKI  · PDF file · 2012-10-23Strukture podataka i algoritmi Prof. Jelena Ignjatović UNIVERZITET U NIŠU PRIRODNO – MATEMATIČKI FAKULTET

Program - Opis algoritma koji u nekom programskom jeziku jednoznačno određuje šta računar treba da uradi. Programiranje - učenje sintakse nekog proceduralnog jezika i sticanje osnovnih intuitivnih znanja za pisanje algoritma za problem koji je opisan rečima.

Algoritmi + strukture podataka = PROGRAMI (Wirth)

kako osmisliti algoritme kako strukturirati podatke kako formulisati algoritme kako verifikovati korektnost algoritama kako analizirati algoritme kako proveriti (testirati) program

Algoritmi i programi

Jelena
Text Box
Page 28: UNIVERZITET U NIŠU PRIRODNO MATEMATIČKI  · PDF file · 2012-10-23Strukture podataka i algoritmi Prof. Jelena Ignjatović UNIVERZITET U NIŠU PRIRODNO – MATEMATIČKI FAKULTET

OvervievMatemati cki algoritmi

Polinomi

Realizacija racuna polinomima

Pretpostavimo da nam je zadatak da napišemo skupalgoritama (procedura) za osnovne operacije sa polinomima,kao i za inicijalizaciju (dobijanje nula polinoma), zaizracunavanje vrednosti polinoma i odredjivanje koeficijenatapolinoma cije su vrednosti date (interpolacija).Polinom je jednoznacno odredjen svojim koeficijentima, pa gaje u racunaru moguce jednostavno realizovati nizomkoeficijenata, tj. koristiti ARRAY za njegovu implementaciju.(Najjednostavnije je koristiti gornji zapis polinoma.)Zbog staticnosti nizova (njihovih fiksnih granica) treba odreditigornju granicu niza koeficijenata, jer je donja 0. Ova granica seodredjuje na osnovu najveceg moguceg stepena koji se koristiu datoj primeni.

Uvodno predavanje Strukture podataka i algoritmi

Page 29: UNIVERZITET U NIŠU PRIRODNO MATEMATIČKI  · PDF file · 2012-10-23Strukture podataka i algoritmi Prof. Jelena Ignjatović UNIVERZITET U NIŠU PRIRODNO – MATEMATIČKI FAKULTET

OvervievMatemati cki algoritmi

Polinomi

Realizacija racuna polinomima(cont.)

Da bi nula-polinom razlikovali od konstantnog polinoma,nula-polinomu dodeljujemo stepen −1, a konstantnompolinomu razlicitom od 0 stepen 0.

Zadatak 1.Napisati proceduru za deklarisanje (definisanje) polinoma.

CONST

MaxStep = n;

TYPE

polinom =RECORD

koef : ARRAY[0..MaxStep] of REAL;

st : [−1..MaxStep]

ENDUvodno predavanje Strukture podataka i algoritmi