Mi sono chiesto di questa domanda da quando ero uno studente universitario. È una domanda generale, ma elaborerò con esempi di seguito. Ho visto molti algoritmi - ad esempio, per i problemi di flusso massimo, conosco circa 3 algoritmi che possono risolvere il problema: Ford-Fulkerson, Edmonds-Karp e Dinic, con Dinic …
Questi due sembrano molto simili e hanno una struttura quasi identica. Qual è la differenza? Quali sono le complessità temporali per le diverse operazioni di ciascuna?
Si dice spesso che la ricerca della tabella hash funzioni in tempo costante: si calcola il valore hash, che fornisce un indice per una ricerca di array. Eppure questo ignora le collisioni; nel peggiore dei casi, ogni oggetto atterra nello stesso bucket e il tempo di ricerca diventa lineare ( …
Se ho un elenco di valori chiave da 1 a 100 e voglio organizzarli in un array di 11 bucket, mi è stato insegnato a formare una funzione mod H= k mod 11 H=kmod 11 H = k \bmod \ 11 Ora tutti i valori verranno posizionati uno dopo l'altro …
Sembra che ovunque io guardi, le strutture di dati vengono implementate usando alberi rosso-neri ( std::setin C ++, SortedDictionaryin C #, ecc.) Avendo appena coperto (a, b), alberi rosso-nero e AVL nella mia classe di algoritmi, ecco cosa sono uscito (anche chiedendo in giro professori, sfogliando alcuni libri e google …
Esistono moltissime strutture dati che implementano l'interfaccia della coda di priorità: Inserisci: inserisce un elemento nella struttura Get-Min: restituisce l'elemento più piccolo nella struttura Estrai-Min: rimuove l'elemento più piccolo nella struttura Strutture di dati comuni che implementano questa interfaccia sono heap (min) . Di solito, i tempi di esecuzione (ammortizzati) …
Supponiamo che la seguente definizione di un albero rosso-nero: È un albero di ricerca binario. Ogni nodo è colorato in rosso o nero. La radice è nera Due nodi collegati da un bordo non possono essere rossi contemporaneamente. Qui dovrebbe esserci una buona definizione di una foglia NIL, come su …
Sto cercando di scrivere un correttore ortografico che dovrebbe funzionare con un dizionario abbastanza grande. Voglio davvero un modo efficiente per indicizzare i dati del mio dizionario da utilizzare usando una distanza Damerau-Levenshtein per determinare quali parole sono più vicine alla parola errata. Sto cercando una struttura di dati che …
Comprendo che la "struttura" dei dati dipende totalmente dall'algebra booleana, ma: Perché i dati sono considerati un'entità matematica discreta anziché continua? In relazione a questo: Quali sono gli svantaggi, o invarianti, che vengono violati nella strutturazione dei dati come entità continua in dimensioni ?rrr Non sono un esperto del settore …
Non sono nemmeno uno studente CS, quindi questa potrebbe essere una domanda stupida, ma per favore abbi pazienza con me ... Nell'era pre-computer, possiamo implementare solo una struttura di dati array con qualcosa come una matrice di cassetti. Poiché è necessario individuare il cassetto con l'indice corrispondente prima di estrarre …
Sto imparando a conoscere alberi radix (ovvero tentativi compressi) e Patricia, ma sto trovando informazioni contrastanti sul fatto che siano effettivamente le stesse. Un albero radix può essere ottenuto da un trie normale (non compresso) unendo i nodi con i loro genitori quando i nodi sono l'unico figlio. Questo vale …
Quando si implementa un dizionario ("Voglio cercare i dati dei clienti in base ai loro ID cliente"), le strutture di dati tipiche utilizzate sono tabelle hash e alberi di ricerca binari. So ad esempio che la libreria C ++ STL implementa dizionari (li chiamano mappe) usando alberi di ricerca binaria …
Intuitivamente, gli "alberi bilanciati" dovrebbero essere alberi in cui i sottoalberi sinistro e destro di ciascun nodo devono avere "approssimativamente lo stesso" numero di nodi. Ovviamente, quando parliamo di alberi bilanciati rosso-nero * (vedere la definizione alla fine), intendiamo effettivamente che sono bilanciati in altezza e in tal senso, sono …
Wikipedia e altre fonti che ho trovato elencano il voidtipo C come un tipo di unità anziché un tipo vuoto. Lo trovo confuso in quanto mi sembra che si voidadatti meglio alla definizione di un tipo vuoto / inferiore. voidPer quanto ne so, non abitano valori . Una funzione con …
Sto cercando una struttura di dati che memorizza un set di stringhe su un set di caratteri ΣΣ\Sigma , in grado di eseguire le seguenti operazioni. Indichiamo D(S)D(S)\mathcal{D}(S) come struttura dati memorizzare l'insieme di stringhe SSS . Add-Prefix-Setsu D(S)D(S)\mathcal{D}(S) : dato un insieme TTT di stringhe (possibilmente vuote), la cui …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.