Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema
Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema
Insta360 Luna Ultra integra un sensore da 1 pollice 8K, ottiche Leica e triplo chip IA. Tra schermo OLED rimovibile, workflow I-Log a 10 bit e stabilizzazione a tre assi, analizziamo le doti tecniche di una gimbal camera pensata per i professionisti
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine porta Logan in un'avventura inedita, violenta e fortemente narrativa, costruita attorno alla sua natura di combattente e al difficile rapporto con il proprio passato. Insomniac Games punta su combattimenti spettacolari, progressione e personalizzazione, inserendo l'azione in un mondo segnato dalla persecuzione dei mutanti. Un viaggio intenso, che alterna mattanza, esplorazione e momenti sorprendentemente emotivi.
DJI Romo 2: tante novità lo rendono un robot completo
DJI Romo 2: tante novità lo rendono un robot completo
Romo 2 è la seconda generazione di robot lavapavimenti di DJI, un modello che si caratterizza per la precisione nel sistema di navigazione e per il funzionamento particolarmente silenzioso. Con le modifiche introdotte in questa seconda versione, e un posizionamento di prezzo più allineato alla concorrenza, rappresenta una valida alternativa sul mercato delle soluzioni di pulizia domestica
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


Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema Insta360 Luna Ultra: la potenza del sensore da 1...
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa Marvel's Wolverine, la recensione: Logan torna p...
DJI Romo 2: tante novità lo rendono un robot completo DJI Romo 2: tante novità lo rendono un ro...
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED Sony Bravia 9 II: il True RGB alla prova, dove l...
Geely EX5, un mese al volante: il SUV elettrico cinese che ci ha sorpreso (quasi) senza riserve Geely EX5, un mese al volante: il SUV elettrico ...
Nuova rimodulazione per il fisso di TIM ...
iPhone 18 Pro e Pro Max, preordini sotto...
Ha craccato 26 giochi: ora Denuvo vuole ...
Xiaomi 18 Pro, il lancio è uffici...
Spotify introduce una nuova impostazione...
007 First Light introduce il path tracin...
Apple amplia iCloud+ e include Apple TV ...
IA e lavoro, non ci sono solo cattive no...
Antenne 5G e campo elettromagnetico: la ...
HONOR Watch 6 torna in offerta a 169,90 ...
Tutte le offerte Amazon di oggi: Google ...
Diesel alle stelle e benzina in rialzo: ...
Un bambino di 9 anni clicca su 'Promuovi...
Costruito per durare: verso un'operativi...
Il Galaxy A18 4G è ufficiale: un ...
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: 14:28.


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