komplexitet Big O tentafrågor

Denna begreppslista förklarar grundläggande och avancerade koncept relaterade till Big O-komplexitet inom algoritmer, vilket hjälper studenter att förstå och analysera algoritmers effektivitet.

FalconElsa2·64 flashcards·64 frågor
universitetcomputer_sciencealgorithms
0
Kan
1 / 64
0
Övar
Framsida

Vad betyder Big O?

Tryck för att vända
Baksida

Big O är en notation som används för att beskriva den asymptotiska tidskomplexiteten hos algoritmer.

Tryck för att vända
Kan
Övar fortfarande

Quiz(64 frågor)

Fråga 1 av 64

1. Vilken av följande komplexiteter växer snabbast när n ökar?

Begrepp i det här studiesetet(64)

Grundläggande begrepp(16)

Vad betyder Big O?

Big O är en notation som används för att beskriva den asymptotiska tidskomplexiteten hos algoritmer.

Vad mäter Big O?

Big O mäter hur algoritmers körningstid växer i förhållande till storleken på indata.

Exempel på Big O-notationer?

- O(1) - O(n) - O(n^2) - O(log n) - O(n log n)

Sanna eller falska: Big O kan vara negativ?

Falsk. Big O representerar en övre gräns för tidskomplexiteten, och kan inte vara negativ.

Vad beskriver O(1)?

O(1) betyder konstant tid, oavsett indata, till exempel åtkomst av ett element i en array.

Vad innebär O(n)?

O(n) betyder att tiden att köra algoritmen ökar linjärt med datastorleken.

Jämför O(n) och O(n^2).

O(n) växer linjärt, vilket är effektivare än O(n^2) som växer kvadratiskt.

Fill in the blank: O(log n) representerar __________.

effektiv sökning, som i binärsökning.

Definiera O(n log n).

O(n log n) är tidskomplexiteten för effektiva sorteringsalgoritmer som mergesort.

Vad är asymptotisk analys?

Asymptotisk analys bedömer algoritmers prestanda när indata växer mot oändligheten.

Vad är skillnaden mellan bästa och sämsta fall i Big O?

Bästa fall beskriver den snabbaste körningstiden, medan sämsta fall beskriver den längsta.

Exempel på konstant tid?

Att hämta ett element från en lista med index är O(1).

Vad är O(n^2) typiskt för?

O(n^2) är vanligt i algoritmer som använder nästlade loopar.

Vad betyder O(n) i praktiken?

Det innebär att om indata fördubblas, så fördubblas ungefär också körningstiden.

Ge ett exempel på en algoritm med O(log n).

Binärsökning är en typisk algoritm med O(log n) komplexitet.

Vad står O för i Big O?

O står för 'ordning' och beskriver tillväxtordningen för en funktion.

Tidskomplexitet(16)

Tidskomplexitet

Mäter hur tiden för att köra en algoritm förändras med storleken på indata.

Big O notationen

Används för att beskriva den värsta möjliga tidskomplexiteten hos en algoritm.

O(1)

Kallas konstant tidskomplexitet. Tiden för att köra algoritmen ändras inte med datastorlek.

O(n)

Linjära tidskomplexiteten. Tiden ökar linjärt i förhållande till indata n.

O(n^2)

Kallas kvadratisk tidskomplexitet. Vanligt i algoritmer som innehåller dubbla loopar.

O(log n)

Logaritmisk tidskomplexitet, exempelvis vid binärsökning. Tiden ökar långsammare än linjärt.

O(n log n)

Förekommer i effektiva sorteringsalgoritmer som mergesort och heapsort.

Är O(n) bättre än O(n^2)?

Ja, O(n) växer långsammare än O(n^2) och är mer effektiv vid stora n.

Exempel på O(1)

Att hämta ett element från en array: array[index].

Effekter av dubbla loopar

Genererar O(n^2) komplexitet vilket gör algoritmen mycket långsammare.

O(n) vs O(log n)

O(log n) är mer effektiv än O(n) vid stora datamängder.

Tidskomplexitet och indata

Tidskomplexiteten ökar oftast med datastorlek. Det är viktigt att optimera algoritmer.

Vad påverkar tidskomplexitet?

Algoritmens struktur, val av datastrukturer, och typ av operationer.

Exempel på O(n log n)

Mergesort, som kombinerar delning och sortering av datamängden.

Är O(n^2) alltid dåligt?

Inte nödvändigtvis. För små n kan det vara acceptabelt.

Formel för linjär komplexitet

O(n) innebär att tiden är proportionell mot n.

Rumskomplexitet(16)

Vad är rumskomplexitet?

Rumskomplexitet mäter den mängd minne som en algoritm kräver i förhållande till storleken på indata.

Definiera O(1) rumskomplexitet.

O(1) indikerar att algoritmen använder en konstant mängd minne, oavsett storleken på indata.

O(n) rumskomplexitet innebär:

Minne som ökar linjärt med storleken på indata. - Exempel: En lista med n element.

Fill in the blank: O(n²) innebär att minnet ökar ______ med indata.

kvadratiskt

Vad betyder asymptotisk analys?

Analys av algoritmers beteende när indata växer mot oändligheten, vilket fokuserar på dominerande termer.

True or False: Rumskomplexitet och tidskomplexitet är alltid likadana.

False. De mäter olika aspekter: minnesanvändning vs. tidsanvändning.

Exempel på O(log n) rumskomplexitet.

Binär sökning: Använder logaritmisk minnesanvändning genom att dela indata i halvor.

Vilken rumskomplexitet har rekursiva algoritmer generellt?

O(n) eller O(n log n), beroende på hur många rekursiva anrop som görs.

Jämför O(n) och O(n log n).

O(n) är linjär medan O(n log n) växer snabbare, särskilt vid stora n.

Vad påverkar rumskomplexiteten mest?

Antalet variabler och datatyper som används i algoritmen.

Ge ett exempel på O(n³) rumskomplexitet.

En algoritm som använder tre nästlade loopar över n element.

Vad är minnesläckage?

En situation där minne inte frigörs efter att det inte längre används, vilket ökar rumskomplexiteten.

Förklara betydelsen av datatyper.

Olika datatyper påverkar rumskomplexiteten; till exempel, en lista kräver mer minne än en int.

Vad är stackminne?

Minnet som används för att lagra lokala variabler och funktionsanrop, vilket kan påverka rumskomplexiteten.

Vad innebär O(n + m)?

Rumskomplexiteten är summan av två datamängder, n och m, i algoritmen.

Nämn en metod för att minska rumskomplexitet.

Använd in-place algoritmer som förändrar data utan att behöva extra minne.

Jämförelse av komplexitet(16)

O(1) vs O(n)

O(1) är konstant tid, medan O(n) är linjär tid. O(1) är alltid snabbare än O(n).

Sanna eller falska: O(n^2) är snabbare än O(n log n).

Falska. O(n log n) växer långsammare än O(n^2) när n ökar.

Vad innebär O(n!)?

O(n!) innebär att algoritmen växer mycket snabbt, exempelvis i permutationsproblem. Mycket ineffektiv för stora n.

O(log n) vs O(n^2)

O(log n) är logarithmisk och mycket effektivare än O(n^2) när n ökar. O(n^2) växer kvadratiskt.

Fyll i luckan: O(n) är ___ än O(2^n).

mycket snabbare. O(2^n) växer exponentiellt, vilket gör den långsam för stora n.

Ge exempel på O(n log n) algoritm.

Exempel: Quicksort och Mergesort. Båda är effektiva sorteringsalgoritmer.

Vad är skillnaden mellan O(n) och O(n^2)?

O(n) är linjär och växer proportionellt, O(n^2) är kvadratisk och växer mycket snabbare med ökande n.

Sanna eller falska: O(1) och O(log n) är lika.

Falska. O(1) är konstant och alltid snabbare än O(log n) för stora n.

Beskriv O(n^3) typ av algoritm.

O(n^3) är kubisk tid. Exempel: vissa bruteforce-algoritmer för tredimensionella problem.

O(n) är snabbare än ___?

O(n^2) och O(2^n). Det växer långsammare än dessa.

Ge exempel på O(log n) algoritm.

Exempel: Binärsökning. Effektiv sökning i sorterade listor.

Vad innebär O(n^k)?

O(n^k) där k är en konstant, indikerar polynomisk tid. Ju högre k, desto långsammare.

Jämför O(n) och O(log n).

O(log n) är mer effektiv än O(n) för stora n, minimal ökning i tid.

Sanna eller falska: O(n^2) är alltid snabbare än O(n).

Falska. O(n) är snabbare än O(n^2) för alla n > 1.

Ge exempel på en algoritm med O(n^2) komplexitet.

Exempel: Bubbel sortering. Kontrollerar varje element med alla andra.

Vad är den bästa komplexiteten i Big O?

Den bästa komplexiteten i Big O är O(1), konstant tid oavsett input storlek.

Frågor i det här studiesetet(64)

1. Vilken av följande komplexiteter växer snabbast när n ökar?

A.O(2^n)
B.O(n)
C.O(log n)
D.O(n^3)

2. Vad mäter tidskomplexitet?

A.Hur tiden för att köra en algoritm förändras med storleken på indata.
B.Hur mycket minne en algoritm använder.
C.Antalet operationer som utförs oavsett indata.
D.Kostnaden av algoritmimplementering.

3. Vad innebär O(1) rumskomplexitet?

A.Algoritmen använder en konstant mängd minne
B.Minnet ökar linjärt med n
C.Minnet ökar kvadratiskt med n
D.Minnet ökar logaritmiskt med n

4. Vad innebär O(1) i praktiken?

A.Åtkomst av ett element i en array
B.Att köra en loop n gånger
C.Att sortera en lista
D.Att göra en rekursiv sökning

5. Sanna eller falska: O(n log n) är snabbare än O(n^2).

A.Sanna
B.Falska
C.Båda är lika
D.O(n log n) är långsammare

6. Vad beskriver Big O notationen?

A.Den värsta möjliga tidskomplexiteten hos en algoritm.
B.Det genomsnittliga minnesutrymmet som används.
C.Antalet steg för att implementera en algoritm.
D.Kostnaden för att lagra data.

7. Vilken av följande algoritmer har O(n) rumskomplexitet?

A.En enkel loop över n element
B.En algoritm med två nästlade loopar
C.En rekursiv algoritm med O(n log n)
D.En algoritm som kräver O(log n) minne

8. Vilken av följande algoritmer har typiskt O(n^2) tidskomplexitet?

A.Bubble sort
B.Binärsökning
C.Mergesort
D.Investera i aktier

9. Vad innebär O(n^2)?

A.Algoritmen växer linjärt
B.Algoritmen växer kvadratiskt
C.Algoritmen är konstant
D.Algoritmen växer logaritmiskt

10. Vilken av följande beskriver O(1) tidskomplexitet?

A.Tiden för att köra algoritmen ändras inte med datastorlek.
B.Tiden ökar linjärt med indata.
C.Tiden ökar kvadratiskt med indata.
D.Tiden ökar logaritmiskt med indata.

11. Fill in the blank: O(n²) innebär att minnet ökar ______ med indata.

A.konstant
B.linjärt
C.kvadratiskt
D.logaritmiskt

12. Vad står O för i Big O?

A.Ordning
B.Optimal
C.Operation
D.Omfattning

13. Vilket av följande alternativ är ett exempel på en O(n log n) algoritm?

A.Bubbel sortering
B.Quicksort
C.Linjära sökningar
D.Insertsort

14. Vad innebär O(n) tidskomplexitet?

A.Tiden ökar linjärt i förhållande till indata n.
B.Tiden förblir konstant oavsett n.
C.Tiden ökar kubiskt med n.
D.Tiden ökar exponentiellt med n.

15. Vad är asymptotisk analys?

A.Analys av minnesanvändning
B.Analys av algoritmers beteende vid stora indata
C.Analys av tidskomplexitet
D.Analys av funktionella programmeringsspråk

16. Vad beskriver O(log n)?

A.Effektiv sökning
B.Exponential växt
C.Kombinatorisk sortering
D.Konstant tid

17. Fyll i luckan: O(log n) är ___ än O(n).

A.mycket snabbare
B.lika snabb
C.mycket långsammare
D.snabbare vid små n

18. Vad karakteriserar O(n^2) tidskomplexitet?

A.Vanligt i algoritmer med dubbla loopar.
B.Används bara för sorteringsalgoritmer.
C.Tiden förblir konstant oavsett n.
D.Minskar tiden med ökande n.

19. Vilken rumskomplexitet har en algoritm med tre nästlade loopar över n element?

A.O(n)
B.O(n²)
C.O(n³)
D.O(n log n)

20. Vilken av följande är inte en korrekt Big O-notation?

A.O(1)
B.O(-n)
C.O(n log n)
D.O(n^2)

21. Jämför O(n^3) och O(n^2). Vad är sant?

A.O(n^3) växer långsammare
B.O(n^2) är alltid snabbare
C.Båda växer lika snabbt
D.O(n^3) är konstant

22. Vilken tidskomplexitet har binärsökning?

A.O(log n)
B.O(n)
C.O(n^2)
D.O(n log n)

23. Vad är minnesläckage?

A.Minnet återanvänds effektivt
B.Minnet frigörs automatiskt
C.Minnet används utan att frigöras
D.Minnet används endast temporärt

24. Vilken av följande funktioner har linjär tidskomplexitet?

A.O(n)
B.O(n^2)
C.O(log n)
D.O(1)

25. Vilket av följande alternativ är INTE en korrekt tidskomplexitet?

A.O(n)
B.O(1)
C.O(n^2)
D.O(3n)

26. Vilken av följande algoritmer har oftast O(n log n) tidskomplexitet?

A.Mergesort
B.Bubble sort
C.Insertion sort
D.O(n^2) sökning

27. Vilken av följande påståenden är Falskt?

A.Rumskomplexitet och tidskomplexitet är oberoende
B.O(n log n) växer snabbare än O(n)
C.O(1) använder mer minne än O(n)
D.O(n) är linjär rumskomplexitet

28. Vad är skillnaden mellan bästa och sämsta fall i Big O?

A.Bästa fall är snabbare än sämsta fall
B.De är alltid lika
C.Sämsta fall är snabbare än bästa fall
D.De beskriver både bästa och sämsta möjliga scenarier

29. Sanna eller falska: O(1) och O(log n) är alltid lika snabba.

A.Sanna
B.Falska
C.Båda är långsamma
D.O(1) är långsammare

30. Är O(n) alltid mer effektiv än O(n^2)?

A.Ja, O(n) växer långsammare än O(n^2).
B.Nej, O(n^2) är alltid mer effektivt.
C.Båda är lika effektiva.
D.O(n) ger alltid högre tidskomplexitet.

31. Hur påverkar datatyper rumskomplexiteten?

A.De påverkar endast exekveringstiden
B.De har ingen inverkan på minnesanvändning
C.Olika datatyper kräver olika mängder minne
D.Datatyper är alltid desamma i algoritmer

32. Vilken algoritm har O(n log n) tidskomplexitet?

A.Mergesort
B.Bubble sort
C.Linear sökning
D.Insertion sort

33. Vad är skillnaden mellan O(n) och O(n^k) där k > 1?

A.O(n) är snabbare
B.O(n^k) är snabbare
C.Båda är lika
D.O(n) växer exponentiellt

34. Vad är en effekt av dubbla loopar i algoritmer?

A.Det genererar O(n^2) komplexitet.
B.Det minskar komplexiteten till O(n).
C.Det förlänger körningstiden till O(n log n).
D.Det skapar konstant tidskomplexitet.

35. Vad innebär O(n + m) rumskomplexitet?

A.Minne växer med den större datamängden
B.Minne är summan av n och m
C.Minne är konstant
D.Minne beror endast på n

36. Vilken av följande påståenden är sann?

A.Big O kan vara negativ
B.O(n) är snabbare än O(n^2)
C.O(log n) är alltid konstant
D.Big O beskriver endast minsta tidskomplexitet

37. Ge ett exempel på O(log n) algoritm.

A.Bubbel sortering
B.Binärsökning
C.Mergesort
D.Quicksort

38. Vilken är mer effektiv när n blir stort: O(n) eller O(log n)?

A.O(log n)
B.O(n)
C.Båda är lika effektiva.
D.Ingen av dem är effektiv.

39. Vilket alternativ är ett sätt att minska rumskomplexiteten?

A.Använd flera datatyper
B.Använd rekursiva algoritmer
C.Använd in-place algoritmer
D.Använd fler variabler

40. Vad karakteriserar O(n^2)?

A.Det är typiskt för algoritmer med nästlade loopar
B.Det används för konstant tid
C.Det används för sökningar
D.Det är alltid snabbare än O(n)

41. Vilken av följande algoritmer har O(n^2) komplexitet?

A.Mergesort
B.Bubbel sortering
C.Binärsökning
D.Quicksort

42. Hur påverkar datastorlek tidskomplexiteten?

A.Tidskomplexiteten ökar oftast med datastorlek.
B.Tidskomplexiteten minskar med datastorlek.
C.Datastorleken påverkar inte tidskomplexiteten.
D.Datastorleken gör alltid algoritmen snabbare.

43. Vad är stackminne?

A.Minnet för globala variabler
B.Minnet för lokala variabler och funktionsanrop
C.Minnet för statiska data
D.Minnet som används för filhantering

44. Vilken av följande är ett exempel på en algoritm med O(1)?

A.Hämta ett element med index
B.Sortera en lista
C.Söka efter ett element
D.Köra en loop n gånger

45. Vad innebär O(n!) i tidskomplexitet?

A.Mycket effektiv
B.Mycket ineffektiv
C.Konstant tid
D.Linjär tid

46. Vilka faktorer påverkar tidskomplexiteten?

A.Algoritmens struktur och val av datastrukturer.
B.Endast storleken på indata.
C.Kostnaden för att lagra algoritmen.
D.Tillgängligheten av minne.

47. Vilken av följande algoritmer har O(log n) rumskomplexitet?

A.En algoritm med linjär sökning
B.En algoritm som delar indata i halvor
C.En algoritm med tre nästlade loopar
D.En algoritm som itererar över alla element

48. Vad innebär O(n) i praktiken?

A.Körningstiden ökar linjärt med datastorleken
B.Körningstiden är konstant oavsett datastorlek
C.Körningstiden minskar med datastorleken
D.Körningstiden är exponentiell

49. Vilket av följande alternativ är en korrekt jämförelse av O(n) vs O(2^n)?

A.O(n) är snabbare
B.O(2^n) är snabbare
C.De är lika snabba
D.O(n) växer exponentiellt

50. Vad är ett exempel på O(n log n) tidskomplexitet?

A.Mergesort
B.Köa data
C.Att hämta ett element från en array.
D.Dubbla loopar i en algoritm.

51. Jämför O(n) och O(n log n). Vilken växer snabbare?

A.O(n) växer snabbare
B.O(n log n) växer snabbare
C.Båda växer lika snabbt
D.Det beror på indata

52. Vad är asymptotisk analys?

A.Bedömning av algoritmers prestanda vid stora datamängder
B.Analys av minnesanvändning
C.Beräkning av exakta resurser
D.Utvärdering av säkerhetsrisker

53. Vad är den bästa möjliga komplexiteten i Big O?

A.O(n)
B.O(log n)
C.O(1)
D.O(n^2)

54. Är O(n^2) alltid dåligt?

A.Nej, kan vara acceptabelt för små n.
B.Ja, alltid ineffektivt.
C.Nej, det är alltid det bästa alternativet.
D.Ja, det bör alltid undvikas.

55. Vad påverkar rumskomplexiteten mest i en algoritm?

A.Antalet funktioner som används
B.Antalet variabler och datatyper
C.Antalet loopar
D.Antalet rekursiva anrop

56. Fyll i luckan: O(log n) representerar __________.

A.Effektiv sökning
B.Kombinatorisk algoritm
C.Konstant tid
D.Exponential växt

57. Fyll i luckan: O(n log n) är ___ än O(n).

A.snabbare
B.långsammare
C.lika snabb
D.mycket snabbare

58. Vad innebär O(n) i praktisk tillämpning?

A.Tiden är proportionell mot n.
B.Det är alltid konstant.
C.Tiden minskar med ökande n.
D.Det är alltid det sämsta alternativet.

59. Vad betyder O(n²) i praktiken?

A.Minnet ökar proportionellt med n
B.Minnet ökar kvadratiskt med n
C.Minnet förblir konstant
D.Minnet är konstant oavsett n

60. Vad beskriver tidskomplexiteten O(n log n)?

A.Effektiv sortering av data
B.Konstant tid för åtkomst
C.Kvadratisk tid för sortering
D.Ingen växande tid

61. Vilken av följande algoritmer är alltid snabbare än O(n^2) för stora värden av n?

A.O(n)
B.O(n^2)
C.O(n log n)
D.O(2^n)

62. Vilket av följande påståenden är INTE korrekt angående tidskomplexitet?

A.O(1) innebär att tiden för att köra algoritmen är konstant oavsett datastorlek.
B.O(log n) växer snabbare än O(n).
C.O(n^2) kan uppstå i algoritmer med dubbla loopar.
D.O(n) växer linjärt i förhållande till indata.

63. Vilken av följande påståenden beskriver korrekt O(n³) rumskomplexitet?

A.Minnet ökar kubiskt med storleken på indata.
B.Minnet ökar linjärt med storleken på indata.
C.Minnet är konstant oavsett storleken på indata.
D.Minnet ökar logaritmiskt med storleken på indata.

64. Vilket påstående om Big O är korrekt?

A.Big O representerar den lägsta komplexiteten hos algoritmer.
B.Big O anger en övre gräns för tidskomplexiteten.
C.Big O kan vara ett negativt värde.
D.Big O används endast för att mäta minnesanvändning.

Relaterade studieset

Skapa ditt eget studieset

Ladda upp en PDF, klistra in dina anteckningar eller beskriv ett ämne – AI genererar flashcards, quiz och mer på några sekunder.