A quel punto si parlerebbe di una deque, ma vale la pena di complicarsi la vita? Considera che un centro del genere avrebbe pochi negozi vuoti rispetto al numero totale di posti disponibili (se no cosa l'avrebbero costruito grande a fare?Originariamente inviato da Ippo343
Uhm dici? Cioè, sinceramente di strutture dati (e di informatica in genere) ho dimostrato più volte di essere ignorante :P
Più che altro pensavo che ci potrebbe essere qualche modo per migliorare l'algoritmo.
Ad esempio, dato che devono essere fatte delle ricerche in questo array, non sarebbe meglio avere un array con i negozi effettivamente occupati e basta? Complica un po' la struttura dati ma riduce la complessità dell'algoritmo credo.), per cui il risparmio di memoria sarebbe molto ridotto. Aggiungi poi che comunque si parlerebbe di un array di puntatori, con le strutture allocate effettivamente in memoria solo se il negozio è effettivamente utilizzato; diciamo pure che si tratta di 20000 negozi: l'array di puntatori di base occuperebbe 20000*4= ~80 KB di memoria su macchine a 32 bit, 160 KB di memoria su macchine a 64 bit: una quantità di memoria risibile per qualunque PC prodotto negli ultimi 10 anni.
Piuttosto, quello che potrebbe fare la differenza è come si conta di accedervi: se l'indirizzamento è a indice singolo, può andare bene l'array, mentre se si ha un primo livello di indirizzamento ad edifici può convenire avere un array di edifici con ciascuno contenente un puntatore all'array dei suoi negozi. Bisogna poi considerare le altre due questioni:
In entrambi i casi bisogna vedere se conviene avere strutture dati accessorie (array/liste di puntatori) che memorizzano puntatori ai negozi tenendoli raggruppati per tipologia o ordinati per costo (pro: immediatezza della ricerca; contro: spreco di memoria, necessità di tenere aggiornate le strutture in questione ad ogni inserimento) oppure semplicemente ri-effettuare la ricerca ogni volta.- Data la tipologia visualizzare tutti i negozi di quel tipo e la loro posizione.
- Dato un prezzo, visualizzare tutti i negozi che hanno un menu con un costo minore o uguale.
Come detto, però, finché si parla di così pochi dati a mio avviso è da semplificare la semplicità, per cui credo che piuttosto di impegolarsi con cento strutture dati separate sia più conveniente passarsi tutto l'array ad ogni ricerca, il tempo effettivo di scorrimento risulterà comunque molto ridotto.
Se l'indicizzazione è numerica e sequenziale e il riempimento effettivo del container sempre vicino alla soglia massima non credo che convenga.Oppure potrebbe anche valere la pena di scriversi una piccola map stile C++...
Copiata dal forum di Ubuntu, voglio farmi la maglietta![]()
![]()