Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Peugeot Polygon Concept: ecco il futuro delle utilitarie
Peugeot Polygon Concept: ecco il futuro delle utilitarie
Polygon è la concept car di Peugeot che mostra il futuro delle soluzioni del segmento B: tra design compatti e innovativi affiancati da dimensioni compatte uno scherzo dalla manovrabilità incredibile per le manovre a bassa velocità
Reno16 Pro: il compatto di OPPO punta su fotocamera da 200MP e il nuovo Bubble! La recensione
Reno16 Pro: il compatto di OPPO punta su fotocamera da 200MP e il nuovo Bubble! La recensione
OPPO ha portato in Italia, dal 1° luglio 2026, Reno16 Pro: display AMOLED da 6,32 pollici a 144Hz, tripla fotocamera con sensore principale da 200 megapixel, chip Dimensity 8550 Super e batteria da 6000mAh, al prezzo di lancio di 899 euro. Lo abbiamo provato per due settimane insieme al nuovo accessorio Bubble, per capire se la formula compatta della serie regge ancora di fronte a un listino da 1099 euro
 Hisense 55U7SE: tuttofare e accessibile, il MiniLED per film, sport e gioco
Hisense 55U7SE: tuttofare e accessibile, il MiniLED per film, sport e gioco
MiniLED di fascia media con local dimming a 192 zone, 144 Hz nativi e audio firmato Devialet. La prova strumentale riscontra colori affidabili e gaming reattivo, per un prodotto molto accessibile e convincente. Ma la soundbar aggiuntiva è quasi d'obbligo
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 30-05-2010, 17:01   #1
Gremo
Senior Member
 
L'Avatar di Gremo
 
Iscritto dal: Oct 2000
Città: Udine
Messaggi: 3178
[Generale] Curiosità banalissima sulle strutture dati

Ciao a tutti. Posto una domanda banale di cui intuisco già la risposta

Studiamo strutture dati come gli alberi che consentono di effettuare una ricerca con un costo proporzionale all'altezza nel caso dell'albero.

I linguaggi di alto livello utilizzano tali strutture per gestire ad esempio un semplice array e la funziona find()? Nel caso avessi tantissimi elementi in un array e la necessità di utilizzare find(), converrebbe implementare una struttura stile albero fatta a oggetti?

Si, no, perché?
__________________

Desktop: Intel i7-4770K | Asus Gryphon Z87 | Crucial 16GB DDR3 1600MHz | Gigabyte GTX 780 OC Windforce x3 | Samsung 840 Pro 128GB (x 2 RAID0) | be quiet! Straight Power E9 680W CM
Mercatino: bottoni, Dede371, pippokennedy, Bulbi_67, randose, DarkSiDE, davidepaco, _Legend_
Gremo è offline   Rispondi citando il messaggio o parte di esso
Old 30-05-2010, 17:11   #2
DanieleC88
Senior Member
 
L'Avatar di DanieleC88
 
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
Quote:
Originariamente inviato da Gremo Guarda i messaggi
Nel caso avessi tantissimi elementi in un array e la necessità di utilizzare find(), converrebbe implementare una struttura stile albero fatta a oggetti?
__________________

C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai!
DanieleC88 è offline   Rispondi citando il messaggio o parte di esso
Old 30-05-2010, 17:20   #3
Gremo
Senior Member
 
L'Avatar di Gremo
 
Iscritto dal: Oct 2000
Città: Udine
Messaggi: 3178
Immagina di avere in C# un array con 1 milione di numeri interi. Quale differenza in termini di prestazione si otterrebbe utilizzando find() su quell'array, oppure se implementassi un B-tree con semplici oggettini (con relative funzioni di inserimento, cancellazione e ricerca)? Che sappiamo avere mediamente un costo O(log(n))?
__________________

Desktop: Intel i7-4770K | Asus Gryphon Z87 | Crucial 16GB DDR3 1600MHz | Gigabyte GTX 780 OC Windforce x3 | Samsung 840 Pro 128GB (x 2 RAID0) | be quiet! Straight Power E9 680W CM
Mercatino: bottoni, Dede371, pippokennedy, Bulbi_67, randose, DarkSiDE, davidepaco, _Legend_
Gremo è offline   Rispondi citando il messaggio o parte di esso
Old 30-05-2010, 17:47   #4
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quote:
Originariamente inviato da Gremo Guarda i messaggi
I linguaggi di alto livello utilizzano tali strutture per gestire ad esempio un semplice array e la funziona find()? Nel caso avessi tantissimi elementi in un array e la necessità di utilizzare find(), converrebbe implementare una struttura stile albero fatta a oggetti?
Dipende dal linguaggio, dipende dalla struttura dati che usi. Insomma dipende da molte cose.
Se hai necessità di fare molte find, la struttura dati ideale è una hash table.

Ultima modifica di cionci : 30-05-2010 alle 17:52.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 30-05-2010, 17:52   #5
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quote:
Originariamente inviato da Gremo Guarda i messaggi
Immagina di avere in C# un array con 1 milione di numeri interi. Quale differenza in termini di prestazione si otterrebbe utilizzando find() su quell'array, oppure se implementassi un B-tree con semplici oggettini (con relative funzioni di inserimento, cancellazione e ricerca)? Che sappiamo avere mediamente un costo O(log(n))?
Dipende se il costo di inserimento è superiore al costo di ricerca.
Bene o male prendere un array ed inserirlo in un B-tree ti costa O(n). Quindi dipende da quante ricerche devi fare.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 30-05-2010, 17:53   #6
Gremo
Senior Member
 
L'Avatar di Gremo
 
Iscritto dal: Oct 2000
Città: Udine
Messaggi: 3178
Quote:
Originariamente inviato da cionci Guarda i messaggi
Dipende dal linguaggio, dipende dalla struttura dati che usi. Insomma dipende da molte cose.
Se hai necessità di fare molte find, la struttura dati ideale è una hash map.
Almeno tu hai capito cosa intendo meno male Comunque la mia era curiosità, non devo implementare nulla. Però mi domando perché, se più efficienti, queste strutture (alberi) non sono implementate di default. Una tabella di hash è più veloce di un albero? Non mi ricordo bene...
__________________

Desktop: Intel i7-4770K | Asus Gryphon Z87 | Crucial 16GB DDR3 1600MHz | Gigabyte GTX 780 OC Windforce x3 | Samsung 840 Pro 128GB (x 2 RAID0) | be quiet! Straight Power E9 680W CM
Mercatino: bottoni, Dede371, pippokennedy, Bulbi_67, randose, DarkSiDE, davidepaco, _Legend_
Gremo è offline   Rispondi citando il messaggio o parte di esso
Old 30-05-2010, 18:02   #7
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
La ricerca della presenza di una chiave in una tabella hash è generalmente costante.

Certo che sono implementate, ma dipende dalla struttura dati che usi. Comunque ogni struttura dati ha i suoi pro e i suoi contro. E' inutile cercare le prestazioni di ricerca in un array, quando in un array l'accesso è la maggior parte delle volte sequenziale.
Diversi linguaggi di alto livello hanno TreeMap e HashMap, che sono rispettivamente implementati con un red-balck tree e con un hash table.
Chiaramente ci sono altri problemi anche con questi, ad esempio nell'HashMap non c'è un ordinamento per chiave, nel TreeMap c'è, ma inserimento, rimozione e ricerca costano O(log n).
Ogni struttura dati ha i suoi vantaggi e i suoi svantaggi.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 30-05-2010, 18:09   #8
pabloski
Senior Member
 
Iscritto dal: Jan 2008
Messaggi: 8406
quoto cionci e aggiungo che la ragione del perchè esistono ancora in tutti i linguaggi strutture "semplici" come gli array è che in informatica non esiste il migliore in assoluto ma bisogna sempre cercare di salvare cavolo e capra, valutando a seconda del problema da risolvere quali caratteristiche sono quelle più importanti e di conseguenza scegliere le strutture dati più opportune
pabloski è offline   Rispondi citando il messaggio o parte di esso
Old 30-05-2010, 18:27   #9
fero86
Senior Member
 
Iscritto dal: Oct 2006
Città: Roma
Messaggi: 1383
Quote:
Originariamente inviato da cionci Guarda i messaggi
Bene o male prendere un array ed inserirlo in un B-tree ti costa O(n). Quindi dipende da quante ricerche devi fare.
si, ma inserire gli N elementi in un array puó costare molto di piu se l'array non é preallocato e comunque costa ugualmente O(N) se l'array é preallocato.
fero86 è offline   Rispondi citando il messaggio o parte di esso
Old 30-05-2010, 20:52   #10
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quote:
Originariamente inviato da fero86 Guarda i messaggi
si, ma inserire gli N elementi in un array puó costare molto di piu se l'array non é preallocato e comunque costa ugualmente O(N) se l'array é preallocato.
Se vuole trasferire gli elementi da un array ad un albero si suppone che siano già all'interno dell'array, no ?
cionci è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Peugeot Polygon Concept: ecco il futuro delle utilitarie Peugeot Polygon Concept: ecco il futuro delle ut...
Reno16 Pro: il compatto di OPPO punta su fotocamera da 200MP e il nuovo Bubble! La recensione Reno16 Pro: il compatto di OPPO punta su fotocam...
 Hisense 55U7SE: tuttofare e accessibile, il MiniLED per film, sport e gioco Hisense 55U7SE: tuttofare e accessibile, il Min...
Kindle Scribe Colorsoft: riduce le cornici e diventa a colori, ma il prezzo è alto Kindle Scribe Colorsoft: riduce le cornici e div...
L'IA cambia tutte le regole della sicurezza tra vulnerabilità e sorveglianza. Intervista al CEO di Proofpoint L'IA cambia tutte le regole della sicurezza tra ...
Edge AI: NVIDIA Jetson raggiungerà...
La missione robotica LINK per salvare il...
Potrebbe essere stato lanciato l'ultimo ...
PamStealer, il malware per Mac che prima...
NAVEE EXO S Pro, il robot esoscheletro p...
Samsung Galaxy A57 5G a 399€ con 256 GB:...
Volevano collegare delle aragoste vive a...
La crisi dei PC è peggiore del pr...
Alibaba pronta a vietare Claude Code ai ...
Sovranità sui dati: Cloud Firewal...
FiberCop porterà la fibra Gigabit...
Data center in Lombardia: 20 progetti sc...
Tutti i modi in cui la scommessa di Orac...
Kioxia e SanDisk sbandierano i numeri de...
iPhone 18 Pro potrebbe usare modem Qualc...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 20:37.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v