Download presentation
Presentation is loading. Please wait.
1
Cilj je razumjeti Algoritam
Fundamentalno do srži
2
Reprezentacija: Razumjeti vezu među različitim reprezentacijama iste informacije ili ideje
1 2 3
3
Različite reprezentacije algoritma?
4
Različite reprezentacije algoritma
Code (zapis programa) Primjer koji radi Abstraktni zapis višeg reda
5
Code class InsertionSortAlgorithm extends SortAlgorithm { void sort(int a[]) throws Exception { for (int i = 1; i < a.length; i++) { int j = i; int B = a[i]; while ((j > 0) && (a[j-1] > B)) { a[j] = a[j-1]; j--; } a[j] = B; }} Za ili protiv ?
6
Code Reprezentacija algoritma
ZA: PROTIV: Radi na računalu Precizan je Percepcija da je potrebno jedino znati programirati je kriva Ja nisam računalo Ja trebam viši stupanj intuicije. Sadrži “bugove” Zavisi o jeziku
7
Isprobajte problem ili riješenje na malim primjerima.
Primjer koji radi Isprobajte problem ili riješenje na malim primjerima.
8
Primjer koji radi Reprezentacija algoritma
88 52 88 98 14 14 31 98 25 30 62 23 79
9
Primjer koji radi 88 52 88 98 14 14 31 98 25 30 62 23 79
10
Primjer koji radi 14,23,25,30,31,52,62,79,88,98 Za ili protiv ?
11
Primjer koji radi Reprezentacija algoritma
Za: Protiv: Konkretan Dinamičan Vizualan Ne objašnjava zašto nešto radi. Demonstrira samo jedan input od mnogih...
12
Apstraktan pogled višeg reda
T+1
13
Stupanj apstrakcije prema prema
Teško je razmišljati o ljubavi uz pomoć živaca koji “okidaju”. prema Softveraši gledaju na podsisteme kao cjeline s osobnošću, ulogama i interakcijama. prema
14
Apstraktni pogled višeg reda Reprezentacija algoritma
ZA: Protiv: Intuitivan za ljude Koristan za Razmišljanje o dizajniranje Opisivanje algoritama Pogled iz kojeg je ispravnost evidentna. Matematički mumbo jumbo Pre apstraktno Studenti mu se protive IDEŠ
15
Abstraktnost - otkloniti nevažne dijelove problema
Cijenite jednostavnost Abstraktnost - otkloniti nevažne dijelove problema = Cilj: Razumjeti i misliti o kompleksnim algoritmima na jednostavan način. Nemojte se isključiti. U jednostavnosti postoje duboke ideje.
16
Dva glavna tipa algoritama
Iterativni Algoritmi Rekurzivni Algoritmi
17
svaki puta prema konačnom
Iterativni Algoritmi Napravite jedan korak svaki puta prema konačnom cilju loop (done) napravi korak end loop
18
Invarijante petlje Dobar način strukturiranja programa:
Spremite ključne informacije koje trenutno znate u neku reprezentaciju podataka U glavnoj petlji, Radite korak naprijed prema cilju s jednostavnim promjenama podataka.
19
Ajmo razviti Apstraktni pogled višeg reda na iterativne algoritme
Ključna ideja : Invarijante petlje
20
Problem odlaska u školu
21
Specifikacija problema
Početni uvijet: položaj škole i kuće Završni uvjet: putovao sam od škole do kuće
22
Algoritam Što je algoritam ?
23
Algoritam Algoritam definira put računanja...
24
Složenost Ima bezbroj mogućih ulaza.
Algoritam mora raditi za svaki od njih.
25
Složenost Teško je predvidjeti kad će računanje biti na pola puta...
26
Položaj računa Trenutno “Stanje” računa se određuje vrijednostima svih varijabli.
27
Položaj računa Pretpostavite da računanje završava ovdje?
28
Ne paničarite Bez obzira gdje se nalazite napravite najbolji korak prema školi.
29
Općenit princip Ne brinite se o ukupnom računu Radite korak po korak.
30
Definiranje algoritma
Ma gdje bili učinite najbolji korak prema cilju.
31
Napravite korak Što je potrebno za taj korak?
32
Mjera napredovanja 75 km to school 79 km to school
33
Definiranje algoritma
Da li je to dovoljno za definiranje algoritma? 79 km 75 km
34
Algoritam koji radi Računanje se stalno približava cilju 79 km
to school 75 km
35
Definiranje algoritma
Posebni zahtjevi 79 km 75 km km 79 km 0 km
36
Definiranje koraka Ma gdje bili učinite najbolji korak prema školi.
37
Računalni zastoj Položaj je previše zbunjujući za računalo
Algoritam je prelijen da bi definirao korak za svaki položaj.
38
Sigurne lokacije Algoritam specificira s kojih lokacija zna kako će napraviti korak.
39
Invarijanta petlje “Računanje je trenutno na sigurnoj lokaciji.”
Možda istina a možda i ne.
40
Definiranje algoritma
Sa svake sigurne lokacije definirajte jedan korak prema školi.
41
Napravite korak Što je potrebno za korak?
42
Zadržati invarijantu petlje
Ako je računanje na sigurnoj lokaciji neće zakoračiti na nesigurnu.
43
Zadržati invarijantu petlje
Ako smo na sigurnom nećemo koračati prema nesigurnoj lokaciji. Možemo li biti sigurni da će računanje biti uvijek na sigurnoj lokaciji ? Ne. Što ako na početku nismo na Sigurnoj lokaciji ?
44
Uspostavljanje invarijante petlje
Iz početnih uvijeta (početni položaj) moramo uspostaviti invarijantu petlje.
45
Završetak algoritma Exit Definirajte uvijet za izlaz
Završetak: Ako smo dovoljno napredovali, možemo izaći iz petlje. Kad izlazimo Uvijet za izlaz je zadovoljen Invarijanta petlje je zadovoljena iz toga možemo postaviti završni uvijet. Exit 0 km Exit Exit Exit
46
Ajmo ponoviti
47
Dizajniranje algoritma
Def. problem Definirajte Invarijante petlje Definirajte mjeru napretka Definirajte korak Definirajte uvijet za izlaz Zadržite inv. petlje Približavajte se Početni uvijeti Kraj 79 km to school Exit Exit 79 km 75 km Exit 0 km Exit Exit
48
Algoritam Exit 79 km 75 km Exit 0 km Exit Exit To je dovoljno !
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.