Macierz rzadka

0

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?

0

Mapa?

Map<int,Map<int,double>>;
0

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ć.

0

No to zrób tablicę N map?

0

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.
0

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ą.

1 użytkowników online, w tym zalogowanych: 0, gości: 1