Hogyan érdemes mátrixot reprezentálni? többi lenn.
van egy két dimenziós tömböm:
{{1,1,1,1,1},{0,0,0,0,0},{0,0,0,0,0},{0,0,0,0,0},{0,0,0,0,0}};
1. az 1-esekből álló rész legyen a mátrix első oszlopa:
10000
10000
10000
10000
10000
2. vagy az első sora?
11111
00000
00000
00000
00000
Én meg már azt hittem, hogy valami érdekes ötletet fogsz felvetni, de csak kétdimenziós tömböt találtam :(
Akkor bedobom a sajátomat - ábrázold láncolt adatszerkezetben :D
Esetleg aminek még értelme is lenne egy ilyen mátrix esetén, amikor az elemek nagy része 0, használt a sparse matrix szerkezetet.
Persze 5x5-ös mátrix esetén ne használj sparse mátrixot, ekkor felesleges lenne, sőt pazarló, többet vesztesz vele, mint az a pár bájt amit esetleg nyerni tudsz, ha megfelelő implementációt választasz. Rosszabb esetben pedig ha esetleg 5 helyett 10 kitöltött érték van, már rosszabbul is jársz tárhely szempontjából is.
Amúgy csak 1-esek és 0-k lehetnek a tömbben? Mert akkor sokkal jobban lehet "tömöríteni", egy int-be simán belefér.
Ezért mondom, hogy 5x5-ös mártix esetén tök felesleges bármi optimalizáció, 25x4 vagy 8 bájtról beszélünk + 1 kis fix overhead.
Sparse mátrixokat NAGY és ritka mátrixokra találták ki.
Nem kell ennyire belemenni :)
Tisztában vagyok fele,hogy többféle módszer van rá.
Konkrét 2d tömb esetében voltam rá kiváncsi ,hogy melyik legyen az oszlop,sor.
Az első mellett döntöttem, mert így x,y-el tudok az elemekre hivatkozni, nem pedig y,x-el.
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
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!