Kezdőoldal » Számítástechnika » Programozás » Ebben a feladatban miért nem...

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?

Figyelt kérdés

A primpakol fv egyébként a tömb elejére rakja a prímeket és a végére a nem prímeket.

[link]



#C++ #prímszám #primpakol
2022. jan. 17. 13:42
 1/7 anonim ***** válasza:
Megorizzuk, de csak az elsot, utana meg prim/nem elemeket mindig atmasoljuk az elozoleg atmasolt elem eredeti helyere, szoval a kulso ciklus lefutasa utan(felteve ha vegyesen voltak primek/nem primek, mas esetben nem tortenik elemmozgatas, csak egyszeruen visszamasoljuk az elemet az eredeti helyere) mindig marad egy "duplikatum", ahova visszatudjuk masolni a kimentett elso elemet. Ez az azert elonyosebb, mint a csere, mert mozgataskor csak egy ertekadas tortenik, nem 3, vagyis gyorsabban fut.
2022. jan. 17. 14:32
Hasznos számodra ez a válasz?
 2/7 anonim ***** válasza:
Mert nem ért hozzá. Számtalan jele van, pl programozó nem használ egy betűs változóneveket, de a while ciklusban a másik két while is egy gyönyörűség. Felejtsd el, hogy ilyet valaha is láttál.
2022. jan. 17. 14:41
Hasznos számodra ez a válasz?
 3/7 anonim ***** válasza:

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.

2022. jan. 17. 14:57
Hasznos számodra ez a válasz?
 4/7 A kérdező kommentje:
#1: köszönöm!
2022. jan. 18. 09:54
 5/7 anonim ***** válasza:

"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á

2022. jan. 18. 17:59
Hasznos számodra ez a válasz?
 6/7 A kérdező kommentje:

Ez egyébként egy könyvből van:

[link]

2022. jan. 18. 18:12
 7/7 anonim ***** válasza:

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.

2022. jan. 18. 21:23
Hasznos számodra ez a válasz?

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!