Del 16. Klasser och sorteringar
VI ska fortsätta med klasser, Men också med något nytt! Det vi ska göra nu är sortera nummer, genom att använda en klass. alla nummer är redan bestämda i en ordning. vi ska använda klassen för att ändra ordning på dem.
Vi kommer använda 2 klasser som föra gången. I den första kommer vi skapa våra nummer, och sen skriva ut dem. I vår andra klass kommer vi sortera våra nummer. Det är inte mycker svårare än så!
Första klassen
public class Main {
public static void main(String[] args)
{
double[] vikt = {67, 45, 678, 1, 777};
Sort.bubbelSort(vikt);
System.out.println("5 sorterade tal");
for(int k=0; k < 5; k++)
{
System.out.println(vikt[k]);
}
}
}
public class Main {
public static void main(String[] args)
{
double[] vikt = {67, 45, 678, 1, 777};
Sort.bubbelSort(vikt);
System.out.println("5 sorterade tal");
for(int k=0; k < 5; k++)
{
System.out.println(vikt[k]);
}
}
}
Det är inget nytt här. vi skickar alla värden i vikt till klassen med Sort.bubbelSort(vikt);
Sedan skriver vi ut alla värden vikt
Den andra Klassen
public class Sort
{
public static void bubbelSort(double data[])
{
for(int m = data.length -1; m > 0; m--)
{
for(int n = 0; n < m; n++)
{
if(data[n] > data[n+1])
{
double temp = data[n];
data[n] = data[n+1];
data[n+1]=temp;
}
}
}
}
}
I grund och botten så jemför den ett tal med ett annat. Om det tal n är större än n+1, så byter de plats.
Den första for loopen sätter vi hur många gånger den ska köras igenom.
I den nästa har vi ett värde som ska börja på 0, och öka allt eftersom.
Sedan jemför vi data[n] och data[n+1]. Om data[n] är större än data[n+1], så byter de plats.
temp är bara en variabel som vi använder för att få dem att byta plats. Det är nog inte så svårt att att förstå själva bytet.
Sen fortsätter den köra igenom allt, så den jämfört alla tal.
sedan skriver den ut talen i sorterad ordning.
Kommentarer
Trackback