2 svar
39 visningar
MayaWingårdh 28
Postad: 4 maj 16:00

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]);
        }
Dracaena Online 1585
Postad: 4 maj 16:14

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.

MayaWingårdh 28
Postad: 4 maj 17:25

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?

Svara Avbryt
Close