9: Laskettavuus ja kompleksisuus Flashcards
(7 cards)
Kysymys voiko algoritmi selvittää, pysähtyykö tietty ohjelma
Pysähtymisongelma
Algoritmi ei pysty ratkaista ongelmaa, tämä kertoo tietokoneiden rajoittuneisuudesta. Esimerkki algoritmisesti ratkeamattomista ongelmista
Tapa, millä algorimeja arvoidaan suoritusajan ja muistin kannalta
Algoritmien analyysi
Suoritusajan ja vaaditun muistitilan perusteella algoritmeja jaetaan eri kompleksisuusluokkiin
Algoritmien kompleksisuusluokka, jossa resurssivaatimus kasvaa suoraan riippuen syötteen koosta
Lineaarinen kompleksisuus
O(n)
Algoritmien kompleksisuusluokka, jossa resurssivaatimus kasvaa logaritmisessa suhteessa syötteen kokoon
Logaritminen kompleksisuus
O(logn)
Algoritmien kompleksisuusluokka, jossa resurssivaatimus kasvaa neliöllisessä suhteessa syötteen kokoon
Neliöllinen kompleksisuus
O(n^2)
Ilmenee epätehokkaassa kuplalajittelussa
Algoritmien kompleksisuusluokka, jossa resurssivaatimus kasvaa loglineaarisessa suhteessa syötteen kokoon
Loglineaarinen kompleksisuus
O(nlogn)
Pikalajittelussa on loglineaarinen kompleksisuus
Algoritmien kompleksisuusluokka, jossa resurssivaatimus kasvaa eksponentiaalisessa suhteessa syötteen kokoon
Eksponentiaalinen kompleksisuus
O(n!)
Esim. kauppamatkaajan ongelma