» »

Bubble sort

Bubble sort

andrejg ::

imam programček z 2D poljem:


int polje[10][2];


Ko vse izpolnim mi npr. izpiše:

Izpis zaloge motorjev:

Sifra Zaloga

245 5
547 8
245 6

Kako naj to sortiram z bubble sort, da bo uredil zalogo od največjega do najmanjšega??

Tako:

Izpis zaloge motorjev:

Sifra Zaloga

547 8
245 6
245 5

Prosim za pomoč!

Hvala!

Vesoljc ::

raje tkole:
struct Motor
{
    int sifra;
    int zaloga;
   
    int operator > (const Motor& rhs) const;
};

int Motor::operator > (const Motor& rhs) const
{
    if( this->sifra > rhs.sifra ) return(1);
    return(0);
}

Motor polje[10];
// potem pa lahko rečeš nekaj tacga
Motor temp;
if(polje[i] > polje[i+1])
{
     temp       = polje[i];
     polje[i]   = polje[i+1];
     polje[i+1] = temp;
}


ksna logicna napaka? ziher :D
Abnormal behavior of abnormal brain makes me normal...

Jebiveter ::

samo tako OT: (newbie question, pa ker sem videl nekaj podobnega tukaj)
kaj pomeni znak "&" za kaksno variablo in kaj pomeni ta isti znak za (recimo) int? (npr: int& variable)
Hvala.
Certainty of death. Small chance of success. What are we waiting for?

OwcA ::

Referenca na neko spremenljivko ali pa njen naslov (odvisno od konteksta).

Kot naslov, če dodeljujemo vrednost kazalcu:
int *p;
int a = 4;
p=&a;


Kot referenca:
int a = 4;
int &b = a;

b je tako postala sopomenka (alias) za a.

Namesto kopiranja po vrednosti, tako lahko kot argument pošljemo kar originalen objekt.
int bee(Owca &o)
{
   ...
}
Otroška radovednost - gonilo napredka.

Zgodovina sprememb…

  • spremenilo: OwcA ()

Vesoljc ::

prenos po vrednosti ali pa po referenci

če rečeš
void ena(int a) {++a; cout << a;}

ter
int b = 100;
ena(b);
cout << b;


se bo v funkciji ena ustvarila začasna spremenljivka in nad to spremenljivko bo klican operator++, vrednost a postane 101. funkcija torej nima vpliva na podano spremenljivko b. temu se reče po vrednosti, samo vrednost dobimo "notri".

če pa spremenljivko podamo kot referenco ali pointer (v biti eno in isto) tkole:
void ena(int& a){++a; cout << a;}     // prek reference
void dva(int* pa) {++(*pa); cout << (*pa);} // prek pointerja


se v funkciji ne ustvari nova spremenljivka, dobimo neko sklicevanje na spremenljivko in nad to "spremenljivko" operiramo

int b = 100;
ena(b); 
cout << b;     // izpiše 101!
dva(&b);      
cout << b;      // izpiše 102!


kot vidiš referenco uporabljaš kot navadno spremenljivko, pointer morš pa "prevorit" (dereferencing)


bee...
Abnormal behavior of abnormal brain makes me normal...

Jebiveter ::

tnx...
Bom probal to pametno uporabit (ko bom postekal, seveda:D ). Hvala.
Certainty of death. Small chance of success. What are we waiting for?

Vesoljc ::

v glavnem, če hočeš, da se spremembe odražajo na spremenljivkah, uporabiš reference ali pointerje, če pa rabiš samo njeno vrednost pa jo podaš po vrednosti.
Abnormal behavior of abnormal brain makes me normal...

OwcA ::

Zadevščina je uporabna predvsem za zmanjšanje števila nepotrebnih kopiranj objekta, torej v deklaraciji argumentov funkcije, kjer ji pogosto dela družbo še const, zato da ne bi pomotoma kaj packal po stvareh, ki jih dobiš. Če čutiš kakšno hudo potrebo po referncah že med snovanjem programa imaš zadevščino slabo zasnovano (ali pa čudna nagnenja do znaka & ;)).
Otroška radovednost - gonilo napredka.


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

[C++] vprašanja (strani: 1 2 3 4 5 6 7 8 9 )

Oddelek: Programiranje
44726470 (11016) aljazko1995
»

[C#] pomoc pri vpisu elementov v listBox

Oddelek: Programiranje
101183 (1098) keworkian
»

[C] najmanjse stevilo

Oddelek: Programiranje
101027 (888) BigWhale
»

[c++] bubblesort

Oddelek: Programiranje
293052 (3052) strictom
»

C++ kopirni konstruktor

Oddelek: Programiranje
103318 (3049) noraguta

Več podobnih tem