2
svar
145
visningar
vad händer med ord i den här koden
Jag vill förstå den är kodbiten, kan någon förklara för mig vad den gör? Jag förstår att den sorterar ett antal nr. Den första loopen körs till alla är sorterade. men vad gör andra loopen?
public void Sort_buss()
{
int max = passenger.Length - 1;
for (int i = 0; i < max; i++)
{
int nrLeft = max - i;
for (int j = 0; i < nrLeft; j++)
{
if (passenger[j] > passenger[j + 1])
{
int temp = passenger[j];
passenger[j] = passenger[j + 1];
passenger[j + 1] = temp;
}
}
}
for (int i = 0; i < passenger.Length; i++)
Console.WriteLine(passenger[i]);
}
Kortfattat så byter du plats på 2 element beroende på vilken som är störts
Säg att vi har: 5,3,4,6,3,5,2
Är 5>2? Ja, byt plats på de, nu har vi 5,3,4,6,3,2,5
Är 3>2? Ja, 5,3,4,6,2,3,5
Är 6>2? Ja, 5,3,4,2,6,3,5 osv
Efter du gjort detta, börjar du nu på max-i och gör samma sak. Tillslut år listan helt sorterad.
så koden betyder ungefär?
Loopa alla vektorns tal tills de är sorterade
loopa talen i vektorn mot varandra
OM x>y byt plats på tal
repetera tills alla tal är sorterade?