3 svar
61 visningar
KriAno är nöjd med hjälpen!
KriAno 422
Postad: 11 nov 2020

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 11780
Postad: 12 nov 2020

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 422
Postad: 12 nov 2020
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 11780
Postad: 12 nov 2020 Redigerad: 12 nov 2020

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 Avbryt
Close