3 svar
217 visningar
KriAno behöver inte mer hjälp
KriAno 434
Postad: 12 nov 2020 00:12

Optimera kod

Hej!
Jag jobbar med en "Implementation of the Sieve of Eratosthenes algorithm" som kollar om ett tal är ett primtal eller ej.
Jag behöver hjälp med hur jag ska optimera den här koden (java):

I uppgiften står även: "There are several optimizations that can be made to the array and how it is cached."

Men i mitt huvud står det helt still... Någon som kan ge lite vägledning?

Tacksam för hjälp!!

Laguna Online 30721
Postad: 12 nov 2020 07:28

En sak jag kommer på är att man kastar bort det såll man redan hade, om talet man vill testa inte finns där. Man skulle kunna bygga vidare på det man har och inte börja om varje gång.

KriAno 434
Postad: 12 nov 2020 08:54
Laguna skrev:

En sak jag kommer på är att man kastar bort det såll man redan hade, om talet man vill testa inte finns där. Man skulle kunna bygga vidare på det man har och inte börja om varje gång.

Jag tänkte också på det, men blev sen förvirrad över hur jag skulle fixa det. Har du något förslag?

Laguna Online 30721
Postad: 12 nov 2020 09:54 Redigerad: 12 nov 2020 09:55

Du vet hur stor arrayen är, men du kan också spara värdet på 'sqrt' så du har det du behöver för att fortsätta där du var.

En annan sak är att om man vill testa tal sekventiellt, säg 1001, 1002, 1003 osv, så kommer man att kopiera eller allokera arrayen gång på gång. Det är effektivare i det fallet att ta i lite mer när man skapar sållet, så att man kanske dubblerar storleken varje gång.

Svara
Close