Ebben a feladatban miért nem cserével oldja meg a primpakol függvény a prímek előre rakását? Hogyhogy nem szükséges megőrízni azt az értéket, amit felülírunk?
A primpakol fv egyébként a tömb elejére rakja a prímeket és a végére a nem prímeket.
14:41
Pedig ez egy tok alap programozasi tetel, a szetvalogatase. Annyi kulonbseggel, hogy cikluson belul nincs beleagyazva a tobbi resze az elso elagazasba. Valtozok elnevezese tenyleg nem a legszerencsesebb.
"Ez az azert elonyosebb, mint a csere, mert mozgataskor csak egy ertekadas tortenik, nem 3, vagyis gyorsabban fut."
A szőnyeg alá sepertük, hogy milyen szuper jól optimalizált a prim függvény, a naív módszer szerint is csak a négyzetgyökéig szoktuk vizsgálni, mellesleg nem is dönti el minden számról jól hogy prím e. (pl. : az 1 mióta prím?)
Az hogy valóban gyorsabb e mint a szokásos csere néhány tény ellene:
- plusz beiktatott while ciklusok a cikluson belül
- plusz feltételhez kötött változó v változó csökkentés
- plusz feltételhez kötött változó e változó növelés
- e<v feltétel ellenőrzés minden ciklusba legkevesebb 5x fut le
- e<v feltétel vizsgálat után ennek teljesülése esetén vec[e] = vec[v] és/vagy vec[v] = vec[e] értékadó utasítás
- nincs ingyen az if, a while feltételvizsgálat sem, ezek plusz overhead-ot adnak hozzá
Azzal úgy önmagában nincs baj hogy bemutat ilyen fajta cserét, azzal viszont már van gond, hogy a prim függvény 1-re és a nála kisebb számokra (azaz a negatívakra is) true értéket ad vissza. A prim függvény rendkívül optimalizálatlansága nem gond ez mint kezdőknek bemutatott példa.
A lokális változók, hogy egybetűsök még azzal sincs olyan nagy baj.
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, 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!