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.
pakeista prieš 5 m
Karolis921 +68
Š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; } }
?
pakeista prieš 5 m
Tomas PRO +4543
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; } } } }
pakeista prieš 5 m
Tomas PRO +4543
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.
Tomas PRO +4543
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.
Karolis921 +68
Ačiū, truputį pasitvarkiau ir lyg viskas veikia :)