od Nargon 21. 4. 2010 11:13
nahodnakolemjdouci píše:No jasně, že se chci naučit programovat, ale nemá mi to kdo vysvětlit. Proto se tu ptám, nemám se od čeho odrazit.
Pak je take vhodne pouzit ten "set" akorat si ho musis implementovat sam. Je tam myslim pouzit samovyvazovaci AVL binarni strom. Velice dobre je jeho implementace vysvetlena tady:
http://tjn.fjfi.cvut.cz/~virius/jera/bi ... stromu.htm (sice je to v jazyku Pascal, ale prepsat to do C++ neni tezke)
Diky jeho pouziti mas pak automaticky vyresene serazeni dat a take odstraneni duplicit.
A postup je pak podobny jako u setu. Proste do toho stromu postupne naladujes vsechny cisla z obou vstupnich souboru. A pak ten strom metodou INORDER projdes a vypises vsechny cisla. A mas je hezky serazene a odstranene duplicity. Tohle je asi ten nejlepsi zpusob jak to napsat. Ale nevim jestli neni pro tebe moc slozity.
A nebo muzes udelat to co jsi navrhoval na zacatku pomoci MergeSortu si oba vstupni soubory seradit a pak je jednim Mergem spojit dohromady. A tady bych doporucoval tu "merge" funkci vylepsit o odstranovani duplicit. Staci si pamatovat posledni cislo co jsi vlozil do vysledku a pokud by jsi mel do vysledku vlozit stejne cislo tak ho do vysledku nevkladat a do vysledku vlozit cislo jen v pripade ze je jine nez to co si pamatujes. Tim si sice pridelas praci s ruznou "delkou" dat a budes s tim muset pocitat, ale mas vyresene duplicity a diky jejim odstranenim to bude i o neco rychlejsi.
Desktop: Ryzen 7 1800X (3.95GHz, 1.35V), Asus Crosshair VI Hero, 16GB DDR4 Ram (3200MHz), 128GB SSD + 3TB HDD, Nvidia GTX 1080
Notebook: Asus UL50VT 15.6" (SU7300@1.7GHz, 4GB ram, 500GB HDD, Intel GMA 4500MHD + nVidia G210M, dlouha vydrz cca 7+ hod)