Professional Documents
Culture Documents
Algoritmi - Slozenost
Algoritmi - Slozenost
Algoritmi - Slozenost
Python
Sloenost i vrijeme izvoenja algoritma
Perzijski matematiar Al-Khowarizmi (Abu Ja'far Mohammed Ibn Musa al Khowarizmi) u udbeniku matematike (oko 825. godine n.e.) prikazao je rjeenja nekih aritmetikih problema u obliku uputstava koja su se sastojala od tono odreenih osnovnih koraka.
to je algoritam?
Algoritam je precizno opisan nain rjeenja nekog problema Svojstva algoritma:
Definiranost
Svaka operacija ili pravilo mora imati definirano i samo jedno znaenje Primjeri za nedoputene instrukcije:
Konanost
Algoritam je upotrebljiv ako se dobije rezultat u konanom vremenu Vrijeme izvoenja mora biti "razumno"
Algoritam koji bi ispitivao sve mogue posljedice poteza u ahu: 20 moguih prvih poteza bijelog, 20 moguih prvih poteza crnog, > 20 moguih drugih poteza bijelog, > 20 moguih drugih poteza crnog Za 10 poteza svakog igraa, barem 2020 Kad bi se 1 kombinacija analizirala 1 s, to je 3170979198376 godina
Informatika, 4.E
Rezultat.
Po zavretku algoritma mora postojati mogunost da se ustanovi rezultat njegovog rada, odnosno da li je algoritam postigao svoj cilj ili nije.
Algoritam je ispravan ako za sve dozvoljene ulazne podatke daje ispravne rezultate
Zadatak
Napisati funkciju koja e sortirati listu metodom zamjene ( exchange sort). Za sluajno generiranu listu od 1000 elemenata izmjeriti vrijeme trajanja sortiranja.
Bubble Sort
Sortiranje zamjenom susjednih elemenata
1
Informatika, 4.E
"Bubbling Up"
u prvom prolazu e najvei element "izroniti" na kraju liste u drugom prolazu e na kraj (pod)liste "izroniti" drugi najvei itd
1 77
2 42
3 35
4 12
5 101
6 5
1 2 Swap 42 77 42 77
3 35
4 12
5 101
6 5
"Bubbling Up"
"Bubbling Up"
1 42
4 12
5 101
6 5
1 42
2 35
Swap 35 77 77 35
3 4 12Swap 77 12 77
5 101
6 5
"Bubbling Up"
"Bubbling Up"
1 42
2 35
3 12
4 77
5 101
6 5
1 42
2 35
3 12
4 77
5 6 5 Swap101 101 5
Ne treba zamjena
Informatika, 4.E
"Bubbling Up"
ostali elementi se jo trebaju postaviti ponoviti jo N-1 puta
1 42
2 35
3 12
4 77
5 5
6 101
1 42 1 35 1 12 1 12 1 5
2 35 2 12 2 35 2 5 2 12
3 12 3 42 3 5 3 35 3 35
4 77 4 5 4 42 4 42 4 42
5 5 5 77 5 77 5 77 5 77
1 77 1 42 1 35 1 12 1 12
2 42 2 35 2 12 2 35 2 5
3 35 3 12 3 42 3 5 3 35
4 12 4 77 4 5 4 42 4 42
5 101 5 5 5 77 5 77 5 77
Merging (cont.)
X:
N-1
10
23
54
Y:
25
75
naelo podijeli pa vladaj (divide and conquer) Primjer L1 = [3, 8, 9] L2 = [1, 5, 7] [1, 3, 5, 7, 8, 9]
Result:
Informatika, 4.E
Merging (cont.)
X:
Merging (cont.)
10
23
54
Y:
25
75
X:
10
23
54
Y:
25
75
Result:
Result:
Merging (cont.)
X:
Merging (cont.)
10
23
54
Y:
25
75
X:
23
54
Y:
25
75
Result:
Result:
10
Merging (cont.)
X:
Merging (cont.)
54
Y:
25
75
X:
54
Y:
75
Result:
10
23
Result:
10
23
25
Informatika, 4.E
Merging (cont.)
X: Y:
Merging (cont.)
75
X:
Y:
Result:
10
23
25
54
Result:
10
23
25
54
75
Podijeli pa vladaj
Sjedinjavanje
Primjer:
99 dvije liste od jednog elementa isto je to i sortiranje sort dijeli nesortiranu listu do lista s jednim elementom i onda sjedinjuje (sortira) u parovima mogue i koritenjem rekurzije
Merge
86
15
58
35
86
99 99 6
86 86
15 15
58 58
35 35
86 86
4 4
0 0
99 99 6
86 86
15 15
58 58
35 35
86 86
4 4
0 0
99
86
15
58
35
86
Informatika, 4.E
99 99 6
86 86
15 15
58 58
35 35
86 86
4 4
0 0
99 99 6
86 86
15 15
58 58
35 35
86 86
4 4
0 0
99
86
15
58
35
86
99
86
15
58
35
86
99
86
15
58
35
86
99
86
15
58
35
86
99
15
86
35
58
86
99
Merge
86
15
58
35
86
99
Merge
86
15
58
35
86
0 6 15 86 99 0 4 35 58 86 6
4 15 86
15 99
35 0
58 4
86 35
86 58
99 86
99
15
86
35
58
86
Merge
Merge
Informatika, 4.E
15
35
58
86
86
99
Informatika, 4.E