Üdv! Olyan gondom van, hogy a terminálra beírt karakterek gyakoriságát kell kiíratnom c-ben, ez még megy is. viszont a feladat tovabbi részében gyakoriság szerint kell rendeznem a karaktereket itt akadtam el, két megoldas jut eszembe a rendezésre:
elso:
Masodik:
Ilyen kimenetet kéne kapnom pl.:
108 'l': 10
97 'a': 8
121 'y': 6
Előre is köszönöm a válaszokat, már vagy két hete itt vagyok elakadva
- 5808 megtekintés
Hozzászólások
Hasznalj stukturat amiben benne van a karakter erteke is + qsort
g
- A hozzászóláshoz be kell jelentkezni
qsortot tilos használnunk :(
- A hozzászóláshoz be kell jelentkezni
Akkor innen válogathatsz.
Javaslat: Elkészíted a folyamatábrát, majd az alapján lekódolod. Így könnyebb elkerülni a hibákat.
-----
A kockás zakók és a mellészabások tekintetében kérdezze meg úri szabóját.
- A hozzászóláshoz be kell jelentkezni
Akkor a buborek rendezes.
- A hozzászóláshoz be kell jelentkezni
- A hozzászóláshoz be kell jelentkezni
Kiraly, koszi. :)
- A hozzászóláshoz be kell jelentkezni
Szóval ez a probléma. Neked kell írni rendezést?
Nem hatékony, de a legprimitívebb házi feladathoz: buborék rendezés.
http://hu.wikipedia.org/wiki/Bubor%C3%A9krendez%C3%A9s
És hogy hogyan?
unsigned char Counter[256]; // ezed van már, nullázott vektor
unsigned char Charlist[256]; // 0..255 -ig feltölteni
A Counter-t buborékrendezed, vele együtt a Charlist-ben is megcsinálod a cseréket.
- A hozzászóláshoz be kell jelentkezni
Strukturaval azert meg is csak egyszerubb lenne.
- A hozzászóláshoz be kell jelentkezni
Szerintem tökmindegy - ilyen feladatnál.
De meggyőzhető vagyok. Kérlek mellékeld a két kódrészletet a cserékről struktúra és dupla vektor esetére, aztán kivesézzük, mennyivel bonyolultabb.
- A hozzászóláshoz be kell jelentkezni
Ha két tömbben tárolsz összetartozó értékeket, akkor amikor rendezed az egyik tömböt, az első alapján rendezned kell a másikat is. Persze a gyakorlatban ez a legtöbb rendezési algoritmusban +1 sort jelent a kódban, de ez pont elég ahhoz, hogy pl. a könyvtári qsort-ot már ne használhasd (persze eltekintve attól, hogy azt most amúgy sem lehet). Könnyen előfordulhat, hogy egy programhiba következtében a két tömb egymáshoz tartozó adatai "elszakadnak" egymástól, és ezért a program kimenete szinte biztos, hogy hibás lesz.
Ha struktúrát építesz az egymáshoz tartozó adatokból, akkor elég egy tömböt tárolni. Vagyis használhatod az összes tömbön értelmezett algoritmust úgy, hogy nem léphet fel inkonzisztens állapot, mert az egymáshoz tartozó adatok mindig egymás mellett maradnak.
- A hozzászóláshoz be kell jelentkezni
+1
- A hozzászóláshoz be kell jelentkezni
gabor2: Hogy elegánsabb, az nem kérdés. De miért egyszerűbb a fenti házi feladat esetén?
- A hozzászóláshoz be kell jelentkezni
Nem akarlak meggyozni. :)
- A hozzászóláshoz be kell jelentkezni
+1
Továbbá a teljesség kedvéért megjegyezném, hogy a memóriában fizikailag egymáshoz közel lévő adatokat sokszor hatékonyabban lehet kezelni. (azonos bázis címhez képest lehet indexelni, jobb az esélye, hogy összetartozó adatok bent vannak a cache -ben, stb...).
- A hozzászóláshoz be kell jelentkezni
subscribe
- A hozzászóláshoz be kell jelentkezni
Első megoldás:
Ha az „a” tömböt akarod rendezni, akkor előtte töltsd fel valamivel. Vagy ne az „a” tömböt rendezd.
-----
A kockás zakók és a mellészabások tekintetében kérdezze meg úri szabóját.
- A hozzászóláshoz be kell jelentkezni
nem kell rendezés. a kis méretek miatt nem is erőszakoljuk meg a hatékonyságot...
ha a két hét komoly akkor, gondold át hogy neked erre valóban szükséged van-e.
http://ideone.com/iyYH7
- A hozzászóláshoz be kell jelentkezni
Hazifeladatmegoldo Unatkozok Portalja.
--
My gold plated butt-plug business is being sued by Apple.
Apparently they have a patent for overpriced crap for arseholes.
- A hozzászóláshoz be kell jelentkezni
az a 2 perc nem fog a padlóra küldeni senkit. :)
meg ha tényleg 2 hete szenved ezzel a végén még öngyilkos lesz, vagy ami rosszabb
elkezd valami egyetemen lövöldözni, embert rabolni.. stb :(
- A hozzászóláshoz be kell jelentkezni
Vagy ami a legrosszabb, lediplomázik, ehe.
- A hozzászóláshoz be kell jelentkezni
Ok, jogos, ne haljanak meg emiatt emberek!
Eddig volt egy ilyen bevett gyakorlat hupon, hogy nem oldunk meg hazit (csak segitunk benne).
--
My gold plated butt-plug business is being sued by Apple.
Apparently they have a patent for overpriced crap for arseholes.
- A hozzászóláshoz be kell jelentkezni
Ok, akkor levettem a láthatóságát és mea culpa. Bár nem sokat módosítottam az ő kódján, ami inkább az (explicit) rendezés nélküli megoldás felé hajlott (egyszerűbb nyelvileg,"algoritmikusan" és kódként is)
- A hozzászóláshoz be kell jelentkezni
Többször kiderült már, hogy amúgy triviális feladatokra is van többféle megoldás, néha egészen zseniálisak is. Pláne hogy ami az egyik nyelven szenvedés, az a másik nyelven esetleg alap, szóval az ilyen kérdések akár hasznosak is lehetnek.
- A hozzászóláshoz be kell jelentkezni
Karakterek, vagy byte-ok? Ha C-rol van szo (es a Unicode-ot hanyagoljuk), akkor van belole max. 256 fele, ladarendezessel letudhato egy pillanat alatt. gyk: felveszel egy 256-os tombot, kinullazod, utana olvasod a byte-okat, es ha pl. 'A' jott, akkor a tombod 'A'-ik elemet noveled 1-el.
Innentol a kiiratas trivialis. Ha gyakorisag szerint kell rendezned a kimenetet, akkor a 256 meretu tombbel egy kb. hatsoros buborekrendezes is egy pillanat alatt vegez.
--
My gold plated butt-plug business is being sued by Apple.
Apparently they have a patent for overpriced crap for arseholes.
- A hozzászóláshoz be kell jelentkezni
Köszönöm szépen az ötleteket, erre volt szükségem :)
- A hozzászóláshoz be kell jelentkezni