Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Sortowanie przez zliczanie tablicy dwuwymiarowej

Ostatnio zmodyfikowano 2017-04-04 15:10
Autor Wiadomość
WilkZKlatki
Temat założony przez niniejszego użytkownika
Sortowanie przez zliczanie tablicy dwuwymiarowej
» 2017-04-03 17:19:40
Cześć mam problem, chcę stabilnie posortować tablicę  dwuwymiarową przez zliczanie, ale wywala mi wyjątek. Nie mogę niestety dojrzeć w czym tkwi problem. Mój kod:

C/C++
void sort_with_show( int ** a, int ** b, int rozmiar, int polecenie )
{
    int max = a[ 0 ][ 0 ];
    for( int i = 0; i < rozmiar; i++ )
    {
        if( a[ i ][ 0 ] > max ) max = a[ i ][ 0 ];
       
    }
   
    int * counts = new int[ max + 1 ];
   
    for( int i = 0; i < rozmiar; i++ )
    {
        counts[ a[ i ][ 0 ] ] ++;
    }
    for( int i = 1; i < max + 1; i++ )
    {
        counts[ i ] += counts[ i - 1 ];
    }
   
    for( int i = rozmiar - 1; i >= 0; i-- )
    {
        counts[ a[ i ][ 0 ] ] --;
        for( int j = 0; j < 2; j++ )
        {
            b[ counts[ a[ i ][ 0 ] ] ][ j ] = a[ i ][ j ];
        }
    }
   
    for( int i = 0; i < rozmiar; i++ )
    {
        if( polecenie == 0 )
        {
            cout << b[ i ][ 0 ] << '\n';
        }
        else if( polecenie == 1 )
        {
            cout << b[ i ][ 0 ] << "," << b[ i ][ 1 ] << "\n";
        }
    }
}
P-159753
mateczek
» 2017-04-04 05:07:10
P-159766
Wiesiek
» 2017-04-04 15:10:53
Tablica counts nie została zainicjalizowana wartością 0.

Odwołanie       b[ counts[ a[ i ][ 0 ] ] ][ j ]     jeżeli nie ma specjalnych ograniczeń na wartości tablicy a, to  a[ i ][ 0 ]  jako indeks tablicy b może wyrzucić poza tablicę  b
Nie jestem pewien wypełniania tablicy b, ale nie chce mi się zbyt dużo myśleć - nie będę wnikał.

{muszę poszukać, gdzie są zapisane zasady tworzenia wiadomości :) }
P-159771
« 1 »
  Strona 1 z 1