›_ ebskola.lv
Programmēšana I - 7. tēma · 6 stundas

Algoritmi un // to efektivitāte

Kā dators atrod vienu vārdu starp miljoniem? Apgūsti bināro meklēšanu, kārtošanas algoritmus un Big O notāciju - rīkus, kas palīdz prognozēt, vai kods darbosies ātri ar miljoniem ierakstu.

6 stundas meklēšana kārtošana Big O
O(log n) ātrums kārtošanas algoritmi Big O notācija
# 01 stundas

Tēmas saturs - 6 stundas

No lineārās meklēšanas līdz Big O - katru jēdzienu apgūsti ar praktisku kodu.

noslēguma projekts
O(n) O(log n) Lineārā: pārbauda katru elementu Binārā: dala uz pusēm katru reizi n=200 log₂=7 // meklēšana.py
O(n) vs O(log n)meklēšana

Meklēšanas pamati

Lineārā pret bināro meklēšanu - kāpēc binārā ir neticami ātra kārtotā masīvā.

1. stundaatvērt ↗
bubble sort · selection sort O(n²) salīdzinājumi // kartosana.py
bubble sort · selection sortkārtošana

Kārtošanas loģika

Bubble sort un selection sort - kā dators sakārto datus un cik daudz darba tas prasa.

2. stundaatvērt ↗
n→ O(1) O(log n) O(n) O(n²) Big O · time complexity // big_o.py
Big O · time complexitysarežģītība

Big O un Sarežģītība

Četras sarežģītības klases grafikā - O(1), O(log n), O(n), O(n²) un to praktiskā nozīme.

3. stundaatvērt ↗
sorted() ātra min()/max() ātra manual sort lēna timeit() mērīšana sorted() · timeit // atrums.py
sorted() · timeitiebūvētās

Iebūvēto funkciju ātrums

Python iebūvētās funkcijas pret rokraksta algoritmiem - mēra ar timeit.

4. stundaatvērt ↗
[1,2,3, 4,5,6] map() x*2 filter() x>4 reduce() sum map · filter · lambda funkcionālā programmēšana // pipeline.py
map · filter · lambdafunkcionālā

Iebūvēto funkciju efektivitāte

map(), filter() un reduce() - datu apstrādes pipeline funkcionālā stilā.

5. stundaatvērt ↗
$ python koda_lauzejs.py
Python · algoritmiprojekts

Noslēguma projekts: Koda lauzējs

Dators ar bināro meklēšanu min skaitli, skaita mēģinājumus un pamana pretrunas.

6. stunda · projektsatvērt ↗
# 02 špikeris

7. tēmas špikeris

Ātrā uzziņa - algoritmi, Big O tabula un iebūvētās funkcijas.

visi špikeļi
vidus = (l + r) // 2 # binārā meklēšana - O(log n)