ematematikas
Kategorijos +Nauja tema Prisijungti        

C++, daliklių skaičius bei jų rikiavimas

Informatika Peržiūrų skaičius (800)

Aišku, dabar supratau ką nori pasakyt...

0

Tuomet linksmiausia dalis: masyve dalkiek[] esančių elementų rikiavimas didėjimo tvarka. Tą galime įgyvendinti vadinamuoju Burbulo rikiavimo algoritmu. Tiesa, norėdami nepamesti ryšio tarp masyvų dalkiek[] ir a[], kurie susieti būtent per masyvo numerį, tai apkeisdami masyvo dalkiek[] elementus, tą patį turime padaryti ir su masyvo a[] elementais.

P.S man ten kažkas su formatavimu buvo susivėlę. Negalėjau parašyti [i] , t.y. i tarp laužtinių skliaustų, imdavo rašyti viską po to kursyvu.

Paskutinį kartą atnaujinta 2019-03-12

0

Šitoks rikiavimo metodas netinka -
void rik_isrinkimu(int a[], int  n)
{
    int i, j, mina;
    int temp;
    for(i = 0; i < n-1; i++)
    {
        mina = i;
        for (j = i+1; j < n; j++)
          if (a[j] < a[mina])
                mina = j;
        temp = a[i];
        a[i] = a[mina];
        a[mina] = temp;
    }
}

?

Paskutinį kartą atnaujinta 2019-03-12

0

Pagal mane turėtų būti taip:
void Rikiavimas ()
{
int i,j;
for(i=0;i<n;i++)
{
for(j=1;j<n;j++)
{
if(dalkiek[j-1]>dalkiek[j])
{
int t = dalkiek[j-1];
dalkiek[j-1]=dalkiek[j];
dalkiek[j]=t;
t = a[j-1];
a[j-1]=a[j];
a[j]=t;
}
}
}
}

Paskutinį kartą atnaujinta 2019-03-12

0

Ten tiesa, dėl parametrų nesu tikras, jie gal ir turi būti. Neaišku kokius kintamuosius naudoji. Ar jie pasiekiami visur ar yra lokalūs.

0

Burbulo esmė: kai i=0, vykdomas pirmas reikšmių perrikiavimas: tai atliekama antrajame (viduje esančiame ) cikle, kur lyginamos gretimos reikšmės ir jei kairioji didesnė už dešiniąją, tai jos apkeičiamos vietomis. Visa tai padaroma n-1 kartų.
Toliau kai i=1 vėl vyksta perrikiavimas tuo pačiu principu dar n-1 kartų.
...
Kol galiausiai kai i=n-1 įvyksta paskutinis perrikiavimas.

0

Ačiū, truputį pasitvarkiau ir lyg viskas veikia :)

0

Tai puiku :)

1

Norėdami rašyti žinutes privalote prisijungti!