Sortowanie tablicy jednowymiarowej

0

Cześć, chciałbym poprosić was o pomoc, mam zadanie następujące http://4programmers.net/Pastebin/3553. Napisałem do tego sortowanie, lecz działa dziwnie.

            int[] tablica = { 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1 };
            int dlugosc = 12;

            Console.WriteLine("Tablica wygląda następująco\n\n");

            for (int i = 0; i < dlugosc; i++)
            {
                Console.WriteLine(tablica[i]);
            }

            Console.WriteLine("Sortowanie tablicy");

            for (int z = 0; z <= (dlugosc - 1); z++)
            {
                if (tablica[z] < tablica[z + 1])
                {
                    tablica[z] = tablica[z + 1];
                }
            }
0

Nie wiem po co Ci zmienna "dlugosc" skoro ona i tak jest inna niż faktyczna dlugość tablicy ;p
Dlugosc tablicy (ilosc elementow) mozesz czytac z tablica.Length ;)

0

Hasło do wyszukania: dutch flag problem. Po polsku tzw. flaga polska.

Coś w tym stylu:

var lo = 0;
var hi = tablica.Length -1;
while (lo < hi)
{
    if (tablica[lo] == 0) 
        lo++;
    else
    {
        var x = tablica[lo];
        tablica[lo] = tablica[hi];
        tablica[hi] = x;
        hi--;
    }
}

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