2 svar
141 visningar
MayaWingårdh 47 – Fd. Medlem
Postad: 4 maj 2021 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]);
        }
Fermatrix 7841 – Fd. Medlem
Postad: 4 maj 2021 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 47 – Fd. Medlem
Postad: 4 maj 2021 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