Wp/isv/Algoritm
Možete pomogti Medžuvikiju, popravivši jego.
V informatikě toj detaljeny plan rěšenja danego problemu, prědstavjeny s pomoču ograničonogo čisla krokov, kde kryterium uspěhu (često vzajemno protivne) sut čas, košt i lihva.
Zapytanjami svězanymi s optimalizaciju algoritmov zajmuje se Teorija Systemov.
Typične kroki v razvoju algoritmov:
- Definicija problemu
- Razvoj modelu
- Specifikacija algoritmu
- Dizajn algoritmu
- Prěgladanje popravnosti algoritmu
- Analiza algoritmu
- Implementacija algoritmu
- Testovanje programu
- Prigotovanje dokumentaciji
Algoritmy v informatikě
[edit | edit source]Rekurencija a iteracija
[edit | edit source]Rekurencija znači to, čto algoritm zna někakoj bazovoj osnovu svojego rabotanja, a ine vyše složene slučaje sut rěšene prěz privestěnje samogo sěbě. Javi se vyše prosta vo implementaciji, ale problem nastaje kogdy kolikost *vyvolanj* je vyša než dozvaljaje stog programovy.
Iteracija znači to, čto někaka akcija je dělana každogo hodu, np. dodavanje čisla 1 do čisla, ktore ty uže imaš. Prěd joj implementaciju ty potrěbuješ znati točnoj kolikost razov koliko iteracij bude sdělanyh.
Priměry v Python
[edit | edit source]Algoritm Euklidesa algorytm vyznačaje najboljši spolny děljnik dvoh čisl. Stvorjeny prěž grěčskogo matematika Euklidesa i objasnjony vo dělu "Elementy".
def gcd(a, b):
while b:
a, b = b, a % b
return a
Složenost čisljenjova
[edit | edit source]Každy algoritm ima někaki čas, ktorogo potrěbuje da by rabotati i zakončiti svoje rabotanje v někakom ograničonom času.
Zavisno od togo, kako informacije sut upravjane. Složenost algoritmov naznača se velikoj bukvu O(n). Objasnjenje priměrami:
O(1) - ty jesi bibliotekar. Každomu čitatělj, ktori prihodi, otrimuje od tebě knigu. Konec historiji.
O(n) - imaš sbirku knig, ktorih je n. Ne znaš, kde je ta jedina, ktoroj hčeš. Iščeš každoj iz njih.
O(log n) - imaš veliky sbornik knig. Vse knigi s titelami, ktore počinajut se od bukvy A do poloviny alfabeta sut so tvoju lěvoj strony, ostatok od poloviny alfabeta do konca je po tvoju lěvoj stroně. Ne trěbuješ gledati vsih knig, čto by najdtji toj jedinoj - gledaš toliko po někakoj větkě.
Žrla
[edit | edit source]- Popularna Encyklopedia Powszechna, Fogra Oficyna Wydawnicza, Kraków 1994
- Cory Althoff, Informatyk samouk, wydawnictwo Helion, przekład: Piotr Rajca
- https://stackoverflow.com/questions/21608593/euclidean-algorithm-gcd-in-python#21608837