Knihovna pro stromy v C
Petr Baláš
petr.balas na gmail.com
Pátek Září 14 14:02:54 CEST 2007
On 9/14/07, Jan Kasprzak <kas na fi.muni.cz> wrote:
> Petr Baláš wrote:
> : No pokud jsou ta vstupni cisla obvykle za sebou, tak bych zkusil
> : pridat neco jako:
>
> Ona jsou "za sebou" jakoze jsou po castech usporadana. Ale zdaleka to
> neznamena blizko sebe. Ale myslenka je to zajimava (nevim ale co s tim
> ta usporadanost ma mit spolecneho).
> :
> : int score2[4096];
> :
> : do pocitaci fce pridat:
> :
> : score2[vstupni_hodnota << 12] = 1;
>
> ... tady spis >> nez <<, ze?
Pochopitelně :-)
> : a vypis upravit na:
> :
> : for (i=0; i < 4096; i++){
> : if (score2[i] != 1)
> : continue;
> : for (j=0; j < 4096; j++) {
> : if (skore[(4096*i) + j] > neco ...) {
> : printf("%d,%d...\n", 4096*i) + j, skore[i],...);
> : }
> : }
> : }
>
> Kazdopadne ale bude lepsi ty bity ve score2[] ukladat skutecne
> do bitmapy a ne do int, ze ktereho se pouzije jen jeden bit. A asi spis
> nez 4096 (predpokladam ze jste to volil jako odmocninu z velikosti stavoveho
> prostoru) pouzit neco co statisticky usetri nejvic pristupu (muselo by se
> asi proverit na aktualnich datech.
Souhlas. Popr. misto int pouzit pointer a ty podprostory alokovat dynamicky
az v okamziku potreby. Pak by se pri trose stesti daly pocitat i 32bit cisla :-)
--
Petr Baláš - petr.balas at gmail dot com
Další informace o konferenci Linux