algorytm sortowania

0
void sortowanie_babelkowe(int *tablica, int n)
{
    for(int i = 1; i < n; i++)
    {
        for(int j = n - 1; j >= 1; j--)
        {
            if(tablica[j] < tablica[j - 1])
            {
                int bufor;
                bufor = tablica[j];
                tablica[j] = tablica[j - 1];
                tablica[i - j] = bufor;
            }
        }
    }
} 

Dlaczego zarówno w pierwszej pętli jeśli dam i = 0 funkcja zadziała normalnie? Nie bardzo rozumiem czemu tam ma być 1.

0

Ani 0 ani 1 nie działa, bo program jest błędny.

tablica[i - j] = bufor;

istnieje bardzo duża szansa, że będziesz próbował pisać do komórek tablicy o ujemnym indeksie.

Prędzej

tablica[j - 1] = bufor;

Wtedy jedyną rolą zewnętrznej pętli jest powtarzanie wewnętrznej pętli, nie używasz w ogóle i. Dla n elementów wystarczy powtórzyć n - 1 razy, więc czy dasz i = 1 czy i = 0 to wielkiej różnicy nie będzie.

0

to lepiej dać i = 1?

1 użytkowników online, w tym zalogowanych: 0, gości: 1