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

Sortowanie bąbelkowe

Ostatnio zmodyfikowano 2015-10-15 22:31
Autor Wiadomość
snajperek130
Temat założony przez niniejszego użytkownika
Sortowanie bąbelkowe
» 2015-10-14 23:13:19
Witam, mam problem z sortowaniem bąbelkowym.
Otóż mam 2 klasy, jedna to klasa Towar, druga klasa Hurtownia, w której mam tablice klasy Towar.
Sortowanie:
C/C++
void Hurtownia::sortuj()
{
    Towar pom;
   
    for( int i = 0; i < 10; i++ )
    {
        for( int j = 0; j < 10 - i - 1; j++ )
        {
           
            if( towar[ j++ ].cena_netto > towar[ j ].cena_netto )
            {
                pom = towar[ j ];
                towar[ j ] = towar[ j + 1 ];
                towar[ j + 1 ] = pom;
            }
           
           
        }
       
       
       
    }
}

Pozniej wypisuje i niestety sortowanie nie dziala. Prosze o pomoc w tej sprawie, myslalem cos o operatorze przypisania, ale jesli sie nie zdefiniuje swojego operatora, to dziala domyslny, czyli skladnik po skladniku prawda?? Wiec powinno dzilac :/.
P-138585
michal11
» 2015-10-14 23:36:29
towar[ j++ ].
Jesteś pewny, że chcesz dokładnie w tym miejscu zwiększać wartość j a nie po prostu porównywać j z j+1 ?
P-138587
mateczek
» 2015-10-15 00:09:30
zainteresuj się debuggerem i prześledź Krokowo swój algorytm (na pewno sam znajdziesz niedopatrzenie).



A jak Ci się znudzi to możesz wyposażyć klasę towar w operator >

C/C++
bool operator <( const towar & a ) {
    return( this->cena < a.cena );
}
bool operator >( const towar & a ) {
    return( this->cena > a.cena );
}

zamiast tablicy użyć kontenera

C/C++
vector < towar > kontener;

i wówczas twoja funkcja sortuj będzie wyglądała tak

C/C++
sort( kontener.begin(), kontener.end() );
P-138588
snajperek130
Temat założony przez niniejszego użytkownika
» 2015-10-15 07:08:36
dzieki, bede sie bawil :)
P-138590
snajperek130
Temat założony przez niniejszego użytkownika
» 2015-10-15 22:31:43
P-138667
« 1 »
  Strona 1 z 1