Witam, mam takie zadanie, że musze napisać klasę odpowiedzialną za przechowywanie macierzy rzadkiej. Muszą być metody get(x, y) i set(x, y, wartosc), x i y to pozycje w macierzy. Do tego musi byc konstruktor przyjmujący N, bo macierz ma byc NxN. Klasa ma zajmować jak najmniej pamięci, czyli raczej odpada zrobienie macierzy NxN i reszty uzupelnienie zerami... Nie mam na to koncepcji, macie jakieś pomysły?
Mapa?
Map<int,Map<int,double>>;
No tak, ale wtedy argument N z konstruktora nie będzie mi w ogóle potrzebny, a to jest zadanie więc muszę wszystko wykorzystać.
No to zrób tablicę N map?
Będzie potrzebny, jeśli nie będziesz wymagał podania wszystkich (również zerowych elementów).
Skonstruujesz macierz, wywołasz tylko set(3,4,52). Jeśli nie znasz rozmiaru, to
- nie wiesz czy powyższy wiersz jest poprawny,
- nie wiesz jak wyświetlić tę macierz.
Może motodą listową ?
http://www.prz.rzeszow.pl/we/katedry/zsc/projekty/5/index.htm
Jakiś czas temu robiłem mnożenie na nvidiach takich macierzy. Jak znajdę to podeślę - mam gdzies materiał jak skompresować macierz rzadką jako graf.
Pani Edyta--
Znalazłem to czego używałem :
http://www.nvidia.com/object/nvidia_research_pub_001.html - tutaj masz wytłumaczone sposoby, a nawet kod jest. Co prawda w CUDA C jednak to tylko troszkę od C sie różni.
to także jest ciekawy art :
http://www.sendspace.pl/file/0820720a7c84066c3c4399b
Edyta 2--
Kutwa - sorry nie zauważyłem, że to dział Java - myślałem, że C ... Tak czy siak nie usuwam posta - może jednak te materiały się przydadzą.