O(log n) – logaritmiline keerukus (tööaeg kasvab väga aeglaselt andmete kasvuga, lahendamine järkjärgulisel vähendamisel, tavaliselt logaritmi aluseks 2, kahendotsimine – otsitav piirkond aheneb igal sammul 2x). 3. O(N) – lineaarne keerukus (elementide töötlemine, andmehulga kasvades 2x kasvab ka tööaeg 2x, lineaarne otsimine). 4. O(n*log n) – linearitmiline keerukus (kui õnnestub saavutada O(N2) asemel, siis on hästi. Kiirsorteerimine & mestimine, kiirem kui ruutkeerukus). 5. O(N2) – ruutkeerukus (andmehulga kasvamisel 10x suureneb tööaeg 102 x, enamasti 2 tsüklit üksteise sees, sõltuvad algandmete hulgast, sobilik väikeste probleemide lahendamisex). 6. O(N3) – kuupkeerukus (3 tsüklit üksteise sees, sõltuvad algandmete hulgast, sobilik väikeste andmehulkade korral, maatriksite korrutamine). 7
• Algoritm, mida kasutakse alamprobleemide lahenduste ühendamiseks, sellest sõltub ka lahenduse efektiivsus 2.3.2 Tugevad küljed: • Konseptuaalselt raskete probleemide lahendamine • Paralleelsus – mitmetuumaliste protsessorite rakendamisel • Aitab avastada efektiivseid algoritme • Cachemälu kasutamine on efektiivsem 2.3.3 Nõrgad küljed: • Tugevate külgede vastandid 2.3.4 Näide kasutamisest: • Kiirsorteerimine ja mestimisega sorteerimine. Mõlemad algoritmid on rekursiivsed ja jaotavad mingi skeemi järgi kogu ülesannet tükkideks, et need sorteerida ja hiljem osad ühendada. • Jaga ja valitse tüüpi strateegiat kasutavad ka otsimiskahendpuu ja kahendotsimise algoritmis. 3. Andmestruktuur. Andmestruktuuri loogiline tase ja realisatsiooni tase. 3.1 Andmestruktuur • Andmete talletamise ja organiseerimise viis