Sortowanie bąbelkowe
Ostatnio zmodyfikowano 2015-10-15 22:31
| 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: 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 :/. | 
|  | 
| 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 ? | 
|  | 
| 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 > 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 vector < towar > kontener;
i wówczas twoja funkcja sortuj będzie wyglądała tak sort( kontener.begin(), kontener.end() );
 | 
|  | 
| snajperek130 Temat założony przez niniejszego użytkownika | » 2015-10-15 07:08:36 dzieki, bede sie bawil :) | 
|  | 
| snajperek130 Temat założony przez niniejszego użytkownika | » 2015-10-15 22:31:43 | 
|  | 
| « 1 » |