Dzień dobry wieczór,
Na wstępie powiem, że kodu nie będzie, bo kompletnie nie mam pomysłu jak to zacząć. Załóżmy, że mamy tablicę:
Nagłówek 1 |
Nagłówek 2 |
Towar1 |
1 |
Towar1 |
1 |
Towar1 |
1 |
Towar2 |
2 |
Towar3 |
4 |
Towar2 |
4 |
Towar1 |
3 |
Chciałbym teraz w wyniku otrzymać tablicę następującą:
Nagłówek 1 |
Nagłówek 2 |
Towar1 |
6 |
Towar2 |
6 |
Towar3 |
4 |
Czy ktoś mi pomoże i podpowie jak ogarnąć taki algorytm???
Najprostszy sposób.
Masz tablicę z danymi wejściowymi (tablica1) oraz tablicę wyjściową (tablica2)
- Tworzysz tablicę2 o strukturze identycznej jak tablica1, ale o zerowej długości
- Iterujesz po pierwszej tablicy wyszukując w drugiej tablicy pasującego elementu .. Tablica1.naglowek=Tablica2.naglowek
- Jeśli nie znaleziono, do tablicy drugiej dodajesz nową pozycję i ustawiasz tablica2.naglowek2=tablica1.naglowek2 oraz .tablica2.naglowek1=tablica1.naglowek1
a jeśli znaleziono to tablica2.naglowek2=tablica2.naglowek2+ tablica1.naglowek2
Ps1. jeśli tablica1 będzie miała duży rozmiar, to należało by zastosować jakiś bardziej wyrafinowany algorytm wyszukiwania w tablicy2 , ponieważ proste iterowanie po tablicy2 może skutkować złożoność obliczeniową O(n2)
Ps2. Jeśli dane do tablicy zaciągasz z bazy, agregację (sumowanie) możesz załatwić na poziome zapytania do bazy i dostaniesz posumowanego gotowca