Hogyan lehetne egy olyan programot írni ami sorbarendezi a számokat? Többi lent.
Próbálkoztam azzal a módszerrel hogy egy csereváltozót hozok létre, azonban kipróbáltam ezt általam kiválasztott számokkal papíron és nem lett jó a megoldásom, ugyanis mindig pontosan egy számpár maradt ami rossz sorrendben van. Ezt kipróbáltam 5 és 15 számmal is de valamiért mindig pont 1 számpár volt aminek rossz a sorrendje. Esetleg csereváltozó nélkül is meg lehetne oldani?
Köszi
for (int j = 0; j < 20 - 1; j++)
if (x[j] > x[j + 1])
{
cs = x[j]; x[j] = x[j + 1]; x[j + 1] = cs;
}
Szia!
Nem jó az algoritmusod. Egyszer végigmész a tömbön, a hibásan álló szomszédokat kicseréled - de ez nem mindig elég.
Például ha ezeket a számokat szeretném növekvő sorrendbe állítani:
5 4 2 3 1
Akkor a te algoritmusod megcseréli az 5-öt a 4-gyel, majd az 5-öt a 2-vel és így tovább, "felúsztatja" az 5-öt, de ez lesz a vége:
4 2 3 1 5
Ezen újra és újra le kell futtatnod ugyanazt. Onnan veszed észre, hogy kész, hogy 0 cserére volt szükség.
Viszont ha nem most kezdted a programozást, akkor nézz utána a rendező algoritmusoknak:
Első programozás házinak jó a buborékrendezés (amit félig jól megvalósítottál), de amúgy sokkal jobb az összefésüléses, kupacos vagy a gyorsrendezés, ha már kezdesz belejönni a dologba.
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!