1.Lengvas
Koks yra 3n² + 5n + 2 didysis O?
- AO(3n²)
- BO(5n)
- CO(n³)
- DO(n²)
2.Lengvas
Kuri sudėtingumo klasė auga greičiausiai, kai n didelis?
- AO(n³)
- BO(n log n)
- CO(2ⁿ)
- DO(n²)
3.Lengvas
Kas yra rekursija?
- ARikiavimo metodas
- BCiklas, kuris niekada nesibaigia
- CFunkcija, kuri iškviečia pati save su mažesniais įvesties duomenimis
- DDuomenų struktūros tipas
4.Vidutinis
Surikiuotame masyve ieškote dviejų elementų, kurių suma lygi tikslinei, judindami po vieną rodyklę nuo kiekvieno galo į vidų. Koks laiko sudėtingumas?
- AO(n²)
- BO(n)
- CO(n log n)
- DO(log n)
5.Vidutinis
Ar teisinga sakyti, kad O(n²) algoritmas yra ir O(n³)?
- ANe, nes didysis O visada turi nurodyti tikslų funkcijos augimo greitį
- BTaip, bet tik jei n mažesnis už 100
- CNe, nes dideliems n n³ mažesnis už n²
- DTaip, nes didysis O yra viršutinis rėžis, o n² auga ne greičiau už n³
6.Vidutinis
Koks yra šio kodo laiko sudėtingumas: for i = 1 to n: (j = 1; while j < n: j = j × 2)?
- AO(n²)
- BO(log n)
- CO(n)
- DO(n log n)
7.Sunkus
Kuris teiginys apie mažojo o žymėjimą teisingas?
- An = o(n), nes kiekviena funkcija yra mažasis o pati sau
- B2n = o(n), nes 2n auga lėtai
- Cn² = o(n)
- Dn = o(n²), bet n nėra o(n)
8.Sunkus
Kodėl dvejetainė paieška vienkrypčiame susietajame sąraše neužtikrina O(log n) laiko?
- ASusietojo sąrašo mazgų palyginimai lėtesni
- BIki vidurinio elemento nueiti reikia O(n) žingsnių, nes nėra tiesioginės prieigos pagal indeksą
- CSusietųjų sąrašų negalima surikiuoti
- DDvejetainei paieškai reikia bent dvigubai daugiau atminties
Atsakymai
- 1. D · O(n²)
- 2. C · O(2ⁿ)
- 3. C · Funkcija, kuri iškviečia pati save su mažesniais įvesties duomenimis
- 4. B · O(n)
- 5. D · Taip, nes didysis O yra viršutinis rėžis, o n² auga ne greičiau už n³
- 6. D · O(n log n)
- 7. D · n = o(n²), bet n nėra o(n)
- 8. B · Iki vidurinio elemento nueiti reikia O(n) žingsnių, nes nėra tiesioginės prieigos pagal indeksą
Išsamūs sprendimai žingsnis po žingsnio: praktikuokite šią temą svetainėje examproblems.com.