sortowanie tablicy 2-wymiarowej

Z tego co do tej pory ogarnąłem, to tablicę jedno wymiarową mogę posortować bez problemu bo jest odpowiednia funkcja.

ALE mam taką oto tablicę dwu-wymiarową (deklarację), którą wypełniam losowymi liczbami:

int[,] losowanie = new int[50,6];

i moje pytanie: Czy można tę tablicę łatwo posortować, czy trzeba się bawić? Chodzi mi o sortowanie samego wiersza.

Teoretycznie (właśnie mi to przyszło do głowy) można sortować na bieżąco w trakcie wypełniania, ale czy jest prostsza metoda?

2 lata, 2 miesiące temu | edytowane przez: t4keda 27225

  • Metoda Array.Sort() przyjmuje jako trzeci parametr funkcję komparatora, od której zależeć będzie sposób posortowania elementów. Co sobie do tego komparatora wsadzisz, to Twoja sprawa.

    Jeśli przykłady z MSDN nie są wystarczające, to tutaj jest prościej.


    Uściślenie: Według tego arytukułu, .NET nie obsługuje sortowania tablic wielowymiarowych (sic!), aby je posortować trzeba przekształcić na tablicę tablic.

  • Wywołujesz sortowanie tablicy w pętli (każdy wiersz sortujesz osobno).

    Algorytm jaki wybierzesz jest zależny od Twoich potrzeb (quicksort, heapsort, booblesort).

    Tylko zamiast losowanie[i] przy tablicy dwuwymiarowej musisz użyć losowanie[i][j], gdzie i należy do zbioru <0,50>, a j należy do <0,6> (np. w pętli for wywołujesz sortowanie i-tego wiersza).

Zaloguj się, aby dodać swoją odpowiedź