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