Programozás C! Hogy rendezem a tömb elemeit?
Pl. A páros számokat rendezzem csak,a páratlanok maradjanak a helyükön.
Kódot is tudnátok rá írni?!
Előre is köszi.
Persze, minden leckédet megoldjuk, csak gondolkodni ne kelljen! Tele van rendezési algoritmusokkal a net, fél perces keresés a Google-val.
Ha egész tömböt tudsz rendezni, akkor szóljál, és majd kapsz tippet a páros számokhoz.
Képzeld,keresgéltem neten,de nem találtam rá megoldást.Egyébként tudok tömböt rendezni,csak azt a verziót nem tudom,mikor vannak elemek amiknek a helyükön kell maradni és csak néhányat kell rendezni.
Kösz a segítséget..igazán rendes vagy.
Egyébként:
for (i=n-1;i>0;i--)
for (j=0;j<i;j++)
if (t[j]>t[j+1])
s=t[j+1];
t[j+1]=t[j];
t[j]=s;
Hát, ez már konkrétabb. Nem kell rögtön felkapni a vizet, ha egy rosszul megfogalmazott kérdésre nem kapsz jó választ, főleg ez a "kódot is írjatok" hangzott úgy, mintha a leckédet akarnád mással megíratni.
Mivel nem tudjuk előre, hol vannak a páros és a páratlan számok, ezt is vizsgálni kell.
Elsőre a következőt mondanám neked, ami nem a leghatékonyabb, de egyszerűen érthető:
Csinálj egy segédtömböt, amiben a páros számoknak megfelelő helyen 1 van, a páratlanoknak megfelelő helyen 0. Vagy: egy olyan segédtömböt, amelyikbe kigyűjtöd a páros számok indexeit.
Utána egy másik tömbbe gyűjtsd ki a páros számokat folytonosan, nézd meg, hányan vannak, már tudod a megfelelő N-et, és rendezd ezt a tömböt. Ha ez megvan, akkor a fenti segédtömb segítségével vissza tudod rakni a párosokat a megfelelő helyekre.
Ez nem a leghatékonyabb módszer, lassú és helyfoglalós, de könnyebb átlátni. Vagy csinálj egy másolatot a tömbről, az összes páratlant cseréld ki a másolatban -1-re, rendezd el, és csak a nemnegatív számokat másold vissza.
Ha ez már megy, akkor megpróbálhatod helyben is rendezni, ami algoritmikusan nehezebb, de hatékonyabb.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!