









Studia grazie alle numerose risorse presenti su Docsity
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Prepara i tuoi esami
Studia grazie alle numerose risorse presenti su Docsity
Prepara i tuoi esami con i documenti condivisi da studenti come te su Docsity
Trova i documenti specifici per gli esami della tua università
Preparati con lezioni e prove svolte basate sui programmi universitari!
Rispondi a reali domande d’esame e scopri la tua preparazione
Riassumi i tuoi documenti, fagli domande, convertili in quiz e mappe concettuali
Studia con prove svolte, tesine e consigli utili
Togliti ogni dubbio leggendo le risposte alle domande fatte da altri studenti come te
Esplora i documenti più scaricati per gli argomenti di studio più popolari
Ottieni i punti per scaricare
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
545 domande del corso 'Laurea Triennale in Informatica per le aziende digitali L-31'. Materia Algoritmi e strutture dati, cod. 0312212INF01I. Prof. Stefano D'Urso, in ordine alfabetico
Tipologia: Prove d'esame
1 / 16
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!










Domanda Risposta A parte la radice: ogni nodo ha esattamente un arco entrante Applicando la tecnica golosa, la scelta dell'intervallo 11 dopo l'8: risulta corretta Applicando la tecnica golosa, qual è il prossimo intervallo da prendere dopo il numero 1: 4 Applicando la tecnica golosa, qual è il prossimo intervallo da prendere dopo il numero 4: 8 Aumentando la dimensione del BitSet: è possibile ridurre la probabilità di falsi positivi Bubble Sort è in generale: stabile
Bubble Sort è in place perché: non introduce strutture dati ausiliarie che dipendono dalla grandezzadell'array
Bubble Sort è in place: si Bubble Sort è stabile perché: non altera gli elementi chiave Bubble Sort nel caso medio: È come Selectio Sort Bubble Sort nel caso peggiore: È come Quick Sort Bubble sort: È quadratico Che tipo di problema è il seguente: hateville Che tipo di problema è il seguente: il problema dello zaino Chi è l'esecutore dell'algoritmo: chi esegue l'algoritmo e conosce il linguaggio con il quale è stato scritto Combina: È una fase del divide et impera Con DAG si intende: grafo diretto aciclico Considerando il seguente ABR, eseguiamo la sostituzione del nodo 46 con il 52: l'albero non è più ABR Considerando il seguente grafo con radice in A ed applicando Dijkstra, quale è la distanza del nodo B: 3 Considerando il seguente grafo con radice in A ed applicando Dijkstra, quale è la distanza del nodo C: 2 Considerando il seguente grafo con radice in A ed applicando Dijkstra, quale è la distanza del nodo D: 5 Considerando il seguente grafo con radice in S ed applicando Bellman Ford, quale è la distanza del nodo B: 5
Considerando il seguente grafo con radice in S ed applicando Bellman Ford, quale è la distanza del nodo C: 7 Considerando il seguente grafo con radice in S ed applicando Bellman Ford, quale è la distanza del nodo E: 8 Consideriamo T(n)=9T(n/3)+n: T(n)=?(n^2)
Cos'è un algoritmo: una sequenza di istruzioni che istruiscono sull'esecuzione di undeterminato compito
Cos'è un problema: qualcosa che siamo chiamati a risolvere Cos'è una istanza: un particolare input ad un problema Cosa si intende per "albero connesso": per ogni coppia di nodi x, y, esiste un cammino da x ad y Dati una lista e un valore, stabilire se il valore è contenuto in un elemento della lista, riportando in caso affermativo l'indirizzo di tale elemento:
È il problema della ricerca
Dato il seguente albero binario, indicare l'ordine di visita in post-order: C D B F G E A Dato il seguente albero binario, indicare l'ordine di visita in pre-order: A B C D E F G Dato il seguente albero binario, indicare l'ordine di visita in-order: C B D A F E G Dato il seguente schema, se (A,B,C,D,E,H) e (A,B,C,D,E,I) sono percorsi minimi: (B, C, D, E) è un tratto ottimo
Definiamo altezza nera di x: il numero di nodi neri lungo ogni percorso da un nodo x (escluso) aduna foglia (nodo NIL)
Dovendo eseguire il calcolo dei cammini minimi in un grafo con pesi negativi, devo usare: Bellman Ford Dovendo eseguire il calcolo dei cammini minimi in un grafo denso con pesi positivi, devo usare: Dijkstra Dovendo eseguire il calcolo dei cammini minimi in un grafo sparso con pesi positivi, devo usare: Johnson E' un sotto-grafo che collega tutti i nodi di un grafo non orientato, senza formare cicli; stiamo parlando di: alberto di copertura Eseguire una DFS basata su chiamate ricorsive in grafi molto grandi e connessi: può essere rischioso Essendo m il numero di slot dove sono memorizzati n elementi: il fattore di carico è dato dal rapporto tra n ed m
Fornire la complessità dell'algoritmo corretto: significa dare almeno un tetto alla complessità del problema risoltodall'algoritmo
Free() in C ha come analoga in C++: delete Fun(arg1, arg2 …): indica una funzione
Gli algoritmi deterministici: sono utilizzati quando la soluzione esatta del problema può essereottenuta con certezza e senza ambiguità
Gli algoritmi di Ordinamento Interno: fanno uso di strutture dati allocate in memoria centrale dell'elaboratore Gli algoritmi golosi sono una tecnica di risoluzione di problemi di: ottimizzazione
Gli algoritmi probabilistici sono preferiti quando:
la soluzione esatta del problema è difficile o impossibile da ottenere con certezza, ma una soluzione approssimata può essere sufficiente per le esigenze dell'applicazione
Gli algoritmi probabilistici: sono utilizzati quando una soluzione approssimata può esseresufficiente per le esigenze dell'applicazione
Gli Algoritmi Semplici di Ordinamento presentano una complessità: quadratica Gli ambienti di Replit sono chiamati: workspace Gli elementi di un array sono memorizzati: consecutivamente Gli elementi di una lista: non sono necessariamente memorizzati in modo consecutivo Gli operatori new e delete in C++ sono usati per: gestire l'allocazione dinamica e la deallocazione degli oggetti
Il seguente è un numero sconnesso: 101 Il seguente grafo: non è degli intervalli Il seguente grafo: è degli intervalli Il seguente non è un numero sconnesso: 5757 Il seguente pseudocodice (a, b) indica uno scambio del valore delle variabili Il seguente pseudocodice arr[{espr}]: indica un valore specifico all'interno dell'array Il seguente teorema è: Bellman Il tempo di completamento medio dei job in figura è: 8. Il tempo di completamento medio dei job in figura è: 6. Il test di primalità è utilizzato: per determinare se un numero intero positivo è primo o composto Il valore approssimativo della sezione aurea è pari a: 1. In Bubble Sort la complessità nel caso medio è: quadratica In Bubble Sort la complessità nel caso migliore è: lineare In Bubble Sort la complessità nel caso peggiore è: quadratica In C/C++ vi sono a disposizione del programmatore, i seguenti pools di memoria: static, stack, heap In Fibonacci non ricorsivo per n? 2: la complessità è O(1) In Fibonacci non ricorsivo per n? 3: la complessità è O(n) In Flowgorithm la ripetizione è identificata da una forma: di un esagono In generale, Monte Carlo è utilizzato per la risoluzione di problemi numerici, come il calcolo di integrali e la simulazione di fenomeni fisici, mentre Las Vegas:
È utilizzato per la risoluzione di problemi di ricerca, come la ricerca di un elemento in una struttura dati
In generale, un algoritmo probabilistico è composto da due parti: preparazione ed esecuzione In Hateville: DP[i] = max(DP[i????], DP[i????] + D[i]) In Heap Sort la complessità nel caso medio è: logaritmica In Heap Sort la complessità nel caso migliore è: logaritmica In Heap Sort la complessità nel caso peggiore è: logaritmica In Insertion Sort la complessità nel caso medio è: quadratica In Insertion Sort la complessità nel caso migliore è: lineare In Insertion Sort la complessità nel caso peggiore è: quadratica In Merge Sort la complessità nel caso medio è: logaritmica In Merge Sort la complessità nel caso migliore è: logaritmica In Merge Sort la complessità nel caso peggiore è: logaritmica In Pseudocode il for necessità: il next In Pseudocode il while necessità: l'endwhile In Pseudocode le iterazioni ammesse sono: for e while In Pseudocode un array: può ammettere integer In Pseudocode una funzione: deve restituire un valore In python numpy è una libreria usata: per generare numeri casuali In Python, quando si assegna un valore a una variabile: si sta creando un riferimento all'oggetto in memoria In Python, tutte le variabili: sono puntatori impliciti In quale tecnica si sceglie la soluzione che sembra la migliore in quel momento, senza considerare le conseguenze a lungo termine di quella scelta:
tecnica golosa
In questo albero di Huffman, la lettera b è codificata con: 101
In questo grafo, il coefficiente di Erdos di A è pari a: 1/ In questo grafo, il coefficiente di Erdos di A è pari a: 2/ In Quick Sort la complessità nel caso medio è: logaritmica In Quick Sort la complessità nel caso migliore è: logaritmica In Quick Sort la complessità nel caso peggiore è: quadratica In selection Sort la complessità ne caso medio è: quadratica In selection Sort la complessità ne caso peggiore è: quadratica In selection Sort la complessità nel caso migliore è: quadratica In termini di complessità, l'implementazione di Fibonacci più vantaggiosa è: quella basata su programmazione dinamica In un albero binario di ricerca perfettamente sbilanciato, l'operazione di lookup: ha complessità logaritmica In un albero binario di ricerca totalmente sbilanciato, l'operazione di lookup: ha complessità lineare
In un albero binario di ricerca, per ogni nodo N dell'albero: l'informazione associata ad ogni nodo nel sottoalbero sinistro di N èstrettamente minore dell'informazione associata ad N
In un albero binario di ricerca: due elementi non possono avere la stessa chiave
In un albero completo: tutte le foglie hanno la stessa profondità e tutti i nodi interni hannogrado 2
In un albero di copertura DFS il termine marcato si riferisce ai nodi: che sono stati visitati durante l'esecuzione dell'algoritmo In un albero generico: non vi sono vincoli sul grado di un nodo In un albero heap, left(i) è pari a: 2i In un albero heap, right(i) è pari a: 2i+ In un albero quasi completo: tutti i livelli, tranne al più l'ultimo, sono completi In un albero rosso-nero, a seguito della cancellazione di un nodo nero: l'altezza nera può essere cambiata In un albero rosso-nero, a seguito della cancellazione di un nodo rosso: l'altezza nera resta invariata In un albero rosso-nero, a seguito della cancellazione di un nodo rosso: la radice resta nera In un albero rosso-nero, a seguito della cancellazione di un nodo rosso: non sono stati creati nodi rossi consecutivi In un albero rosso-nero: le foglie sono costituite da nodi speciali Nil In un albero rosso-nero: la radice è nera In un albero rosso-nero: entrambi i figli di un nodo rosso sono neri
In un albero rosso-nero: ogni cammino semplice da un nodo ad una delle foglie contenute nelsuo sottoalbero ha lo stesso numero di nodi neri
In un albero: esiste un cammino unico dalla radice ad ogni nodo In un array, il problema della visita: significa attraversare tutti i suoi elementi esattamente una volta In un digrafo, se esiste un cammino c tra i nodi u e v, si dice che v: è raggiungibile da u tramite c in un grafo completo, se n è il numero di nodi, tale formula rappresenta: il numero di archi In un grafo G=(V,E), V ed E rappresentano: vertici ed archi In un grafo non orientato, la matrice delle adiacenze: è una matrice triangolare superiore
In una heap corruption: riferimenti a memoria precedentemente rilasciata restano accessibili daparti del programma ancora in esecuzione
In una lista di adiacenze:
i nodi del grafo sono memorizzati in una variabile array; ogni elemento dell'array indica un nodo del grafo e contiene la lista delle sue connessioni (archi) In una lista di puntatori la visita può essere implementata: in maniera iterativa o ricorsiva In una lista di puntatori posso inserire un nuovo elemento: sia in testa che in coda
L'algoritmo di Montecarlo: può essere usato per la stima dell'area di una figura geometrica L'algoritmo di Montecarlo: può essere influenzato dalla serie di numeri casuali generati L'algoritmo di ricerca binaria in un array è: applicabile solo se l'array è ordinato L'algoritmo di ricerca di un elemento in un albero binario di ricerca bilanciato con l'utilizzo dell'algoritmo di Las Vegas: garantisce sempre la correttezza della soluzione restituita L'algoritmo di ricerca lineare in un array è: lineare L'algoritmo di selezione del mediano: può essere risolto mediante algoritmo di Las Vegas L'algoritmo di visita di un array è: lineare L'allocazione dello stack: È gestita dal compilatore L'altezza di un nodo X: è pari a Altezza(X)=max(Altezza(sinistro(X)),Altezza(destro(X)))+ L'approccio bottom-up è tipico di: programmazione dinamica L'assegnazione: modifica il valore di una variabile L'hashing con chaining, nel caso peggiore ha complessità: lineare L'heap è gestito: manualmente dal programmatore
L'idea alla base della tecnica golosa è quella di prendere decisioni: localmente ottimali in modo da raggiungere un risultato globalmenteottimale
L'implementazione dell'algoritmo di Las Vegas nella scelta casuale dell'elemento di pivot riduce la probabilità:
di scelte sbilanciate e può migliorare le prestazioni dell'algoritmo in casi particolari
L'implementazione di una coda circolare: può avvenire tramite array con 2 variabili che mantengono i valori dihead e tail
L'implementazione di una coda in C++ può avvenire tramite: la classe queue
L'implementazione di una pila tramite array prevede: la conoscenza del numero massimo di elementi che la pila puòcontenere
L'implementazione in figura realizza una tecnica: di programmazione dinamica L'inserimento di un elemento in un ABR già popolato, prevede 2 fasi; nella prima si cerca il nodo genitore X e nella seconda: il nodo è inserito come foglia L'inserimento di un elemento in un ABR, nel caso medio ha complessità: logaritmica L'inserimento di un elemento in un ABR, nel caso peggiore ha complessità: lineare L'inserimento di un elemento in una lista di puntatori ha complessità: lineare L'insieme dei giorni dell'anno (da 1 a 366): può essere gestito attraverso una funzione hash d'identità L'ipotesi che si ottiene tramite un albero di ricorsione: può essere usata nel metodo di sostituzione L'operatore & nei puntatori è usato: per ottenere l'indirizzo di un oggetto L'operatore * nei puntatori è usato: per accedere all'oggetto riferito L'operazione di EnQueue in una coda circolare ha complessità: O(1) L'operazione di lettura o modifica del valore di un elemento di un array ha complessità asintotica: O(1) L'operazione di lookup in un albero binario di ricerca bilanciato ha complessità: logaritmica L'operazione di pop in una pila ha complessità: O(1) L'operazione di push in una pila ha complessità: O(1) L'operazione foreach in strutture dati che non siano dizionari, ha un costo: lineare
L'ordinamento di una sequenza di informazioni consiste nel disporre: le stesse informazioni in modo da rispettare una qualche relazioned'ordine di tipo lineare
L'uso di funzioni di hash casuali può introdurre: falsi positivi La 'o' piccola implica la 'O' grande: sempre
La cancellazione in un ABR equilibrato ha complessità: logaritmica La coda è un sistema: FIFO
La complessità asintotica: stima quanto aumenta il tempo di calcolo al crescere della dimensione ndell'input
La complessità dell'inserimento in un albero rosso nero è: logaritmica La complessità delle visite DFS in un albero binario è:.: lineare La DFS esplora prima: i nodi più profondi dell'albero
La dichiarazione di un array comporta: allocazione di memoria non solo per una variabile puntatore, ma ancheper l'area puntata
La dichiarazione di un puntatore comporta: allocazione di memoria per una variabile puntatore, ma non per lavariabile puntata
La differenza principale tra una funzione hash e una funzione hash crittografica è che:
la seconda è progettata per garantire la sicurezza e l'integrità dei dati, mentre la prima è progettata principalmente per l'efficienza delle operazioni di ricerca e inserimento nella tabella hash La funzione DeQueue in una coda: elimina l'elemento in testa
La funzione di Fibonacci realizzata tramite tecnica Divide et Impera: è meno efficiente di quella realizzata tramite tecnica di ProgrammazioneDinamica
La funzione EnQueue in una coda: inserisce un elemento in coda La funzione hash converte la chiave in un intero che viene utilizzato per determinare: l'indice della tabella hash in cui la chiave viene memorizzata La funzione pop in una pila: elimina l'elemento in testa La funzione push in una pila: inserisce un elemento in testa La memoization: è una specializzazione della programmazione dinamica La notazione asintotica O: vale per ogni n maggiore o uguale ad un certo valore n con 0 La notazione asintotica O: rappresenta un limite superiore asintotico La notazione asintotica Omega: vale per ogni n maggiore o uguale ad un certo valore n con 0 La notazione asintotica Theta ammette che esistano 2 costanti c1 e c2: per ogni n maggiore o uguale ad un certo valore n con 0 La notazione Theta rappresenta: un limite stretto La pila è un sistema: LIFO La pragmatica indica: lo studio del miglior modo per esprimere un concetto La profondità di un nodo: È la lunghezza del cammino semplice dalla radice al nodo La programmazione dinamica risolve ogni sottoproblema una sola volta e: salva la sua soluzione in una tabella La ricerca di un elemento in una lista di puntatori ha complessità: lineare La ricerca di un elemento in una lista: È un problema di visita La ricorrenza che si ottiene nel divide et impera è nella forma: aT (n/b) + D(n) + C(n) La ricorsione: È tipica del divide et impera La scelta della struttura dati per implementare una coda: ricade negli array o nei puntatori a seconda dello scenario La scelta della struttura dati per implementare una pila: ricade negli array o nei puntatori a seconda dello scenario La scelta migliore nell'immediata è tipica di: tecnica greedy La seguente classe rappresenta: un grafo non orientato La seguente classe rappresenta: un grafo orientato La seguente classe rappresenta: un grafo pesato orientato La seguente classe rappresenta: un grafo pesato non orientato La seguente codifica: è ambigua La seguente codifica: può essere una codifica di Huffman valida
Merge Sort nel caso medio: è come Quick Sort Merge Sort nel caso peggiore: è come Heap Sort
Merge Sort non è in place perché: introduce strutture dati ausiliarie che dipendono dalla grandezzadell'array
Merge sort: È stabile ma non in place Misura il grado di coesione delle interconnessioni tra i nodi di un grafo; stiamo parlando del coefficiente di: Erdos
Negli smart pointers: È contenuta l'informazione per capire che all'uscita da uno scope,nessun altro scope potrà più accedere alla memoria puntata
Nei diagrammi di flusso, il simbolo del rombo è usato per: selezione Nel calcolo del massimo non ricorsivo, avere il massimo in prima posizione: non comporta vantaggi alla complessità Nel calcolo del massimo non ricorsivo, avere il massimo in ultima posizione: non comporta vantaggi alla complessità Nel calcolo del massimo non ricorsivo, il caso migliore ha complessità: la complessità è O(n) Nel calcolo del massimo non ricorsivo, il caso peggiore ha complessità: la complessità è O(n) Nel calcolo del massimo non ricorsivo: la complessità è O(n)
Nel caso di eliminazione di un nodo con 2 figli in un ABR: si deve trovare il successore o il predecessore e sostituendo il suo valorecon quello del successore/predecessore
Nel caso di eliminazione di un nodo con figlio in un ABR: si deve eseguire uno short-cut Nel caso di eliminazione di una foglia da un ABR: si elimina semplicemente il nodo Nel caso1 relativo all'eliminazione di un nodo dall'albero rosso-nero in cui il fratello è di colore rosso: occorre eseguire una rotazione a sinistra Nel caso3 relativo all'eliminazione di un nodo dall'albero rosso-nero in cui il fratello è di colore nero ed il nipote sinistro è rosso mentre quello destro è nero:
occorre eseguire una rotazione a destra
Nel caso4 relativo all'eliminazione di un nodo dall'albero rosso-nero in cui il fratello è di colore nero ed il destro è rosso: occorre eseguire una rotazione a sinistra Nel divide et impera, C(n) è usato per indicare: il tempo per combinare i sotto-problemi Nel divide et impera, D(n) è usato per indicare: il tempo per dividere il problema in sotto-problemi Nel fattoriale non ricorsivo: la complessità è O(n)
Nel gioco del 15, la parità delle inversioni: è importante per determinare se una configurazione del puzzle èrisolvibile o meno
Nel gioco del 15, le configurazioni raggiungibili sono: 16!/ Nel logaritmo, O(n) ed ?(n): non coincidono Nel max-heap: ogni elemento è minore o uguale al nodo padre Nel mergesort, T(n): È logaritmico
Nel metodo di sostituzione: ipotizziamo un limite e poi usiamo l'induzione matematica perdimostrare che la nostra ipotesi è corretta
Nel min-heap: il più piccolo elemento è nella radice Nel problema del domino, DP[n] è pari a: DP[n-1]+DP[n-2] Nel problema del domino, se n=1 si hanno: 1 soluzione Nel problema del domino, se n=2 si hanno: 2 soluzioni Nel problema del domino, se n=5 si hanno: 5 soluzioni Nel problema delle n regine, se non riuscendo a trovare una posizione valida per la regina nella colonna corrente si rimuove l'ultima regina posizionata e si prova a spostarla in una posizione diversa nella colonna precedente, si sta adottando:
backtracking
Nel problema dello zaino: DP[i][j]=max?(DP[i-1][j-w(i)]+P[i],DP[i-1][j])
Nel problema dello zaino:
ci si propone di scegliere quali di questi oggetti mettere nello zaino per ottenere il maggiore valore senza eccedere il peso sostenibile dallo zaino stesso Nel seguente albero indicare qual è il livello dei nodi B e C: 1 Nel seguente albero, occorre ruotare il seguente nodo per renderlo rosso-nero: 60 Nel seguente albero, volendo costruirlo come rosso-nero: il 30 può essere configurato come B Nel seguente albero: 60 è R Nel seguente grafo, il cammino (A, D, C): è minimo Nel seguente grafo, il costo del cammino minimo da A a C è pari a: 6 Nel seguente grafo, il costo del cammino minimo da A a D è pari a: 2 Nel seguente grafo, il costo del cammino minimo da C ad A è pari a: 6 Nel seguente grafo: il nodo 4 è raggiungibile dal nodo 1 Nel seguente grafo: il nodo 4 è raggiungibile dal nodo 1 e dal nodo 3 Nel teorema dell'esperto si confronta f(n) con: n^(logb(a)) Nel teorema dell'esperto si hanno il seguenti numero di casi di analisi: 3 Nell'albero in figura le foglie sono: D, E, F, G Nell'algoritmo di Bellman Ford, al termine della iterazione k: i vettori T e d descrivono i cammini minimi di lunghezza al più k Nell'algoritmo di Bellman Ford, se n è il numero di nodi, al più si eseguono: al più n iterazioni Nell'algoritmo di Bellman Ford, si usano le personalizzazioni del codice in figura; indicare qual è la complessità dell'algoritmo: O(n*m) Nell'algoritmo di Huffman, quali sono i nodi che vanno eliminati arrivati in questa fase: 14 e 16 Nell'algoritmo di Huffman, uno degli steps prevede: la rimozione dei due nodi con frequenze minori Nell'algoritmo di Monte Carlo per l'espressione polinomiale nulla viene generato un numero casuale nell'intervallo [-M, M], se il valore è molto vicino a zero (entro la soglia di 1e^(-6)):
allora viene considerato un'approssimazione di una radice del polinomio
Nell'analisi di un algorimo è importante considerare correttezza, completezza e: complessità Nell'assegnazione: si modifica il valore di una variabile
Nell'hashing uniforme semplice:
qualsiasi elemento ha la stessa probabilità di essere associato a uno qualsiasi degli slot, indipendentemente dallo slot cui sarà associato qualsiasi altro elemento Nell'heap sort, le operazioni parent, left e right possono essere calcolate: mediante una sola operazione Nell'heap sort: si può usare sia il max-heap che il min-heap Nell'immagine, l'ultima condizione rappresenta: un arco di attraversamento Nell'immagine, le etichette sugli archi indicano: il totale dei nodi che provengono dal sottoalbero
Nell'indirizzamento aperto: gli elementi sono memorizzati nella stessa tabella e dunque ogni slotcontiene una chiave oppure NIL
Nell'ipotesi di hashing uniforme semplice, una ricerca con successo richiede, in media, un tempo: ?(1) + ?/ Nell'ipotesi di hashing uniforme semplice, una ricerca senza successo richiede, in media, un tempo: ?(1) +?
Nell'ipotesi di hashing uniforme semplice: qualsiasi chiave non ancora memorizzata nella tabella ha la stessaprobabilità di essere associata ad uno qualsiasi degli slot
Nell'iterazione sono possibili esclusivamente: mentre, fai, per Nella DFS, la struttura 'finish_time' è usata per indicare che: tutte le visite dei nodi adiacenti sono state completate
Per il teorema di Gilmore e Hoffman, un grafo è un grafo degli intervalli se, e solo se, è triangolato, cioè per ogni ciclo di lunghezza maggiore di X deve possedere una diagonale; il valore di X è pari a:
Per individuare un ordinamento topologico si può eseguire: una visita DFS Per ordine del grafo si intende: il numero dei nodi del grafo Per tenere traccia dei nodi da visitare, la BFS usa: una coda Per tenere traccia dei nodi da visitare, la DFS usa: uno stack Per un grafo con n nodi ed m archi, l'implementazione mediante lista di adiacenze determina una occupazione di spazio: O(n+m) Per un grafo con n nodi ed m archi, l'implementazione mediante una matrice delle adiacenze determina una occupazione di spazio: O(n^2) Prova a fare qualcosa, se non funziona disfala e prova a farne un'altra: È tipico del Backtrack Prova a fare qualcosa; se non va bene, disfalo e prova qualcos'altro; questa è la strategia: del backtracking Quale dei seguenti non è un token in Pseudocode: initialize Quale dei seguenti non è un token in Pseudocode: sum Quale dei seguenti non è un token in Pseudocode: customtype Quale delle seguenti affermazioni è corretta: DP[6]=max(DP[5],DP[4]+D[6]) Quale delle seguenti affermazioni è corretta: DP[7]=max(DP[6],DP[5]+D[7]) Quale delle seguenti affermazioni è corretta: DP[5]=max(DP[4],DP[3]+D[5]) Quale tra le seguenti ha una complessità maggiore al crescere di n: esponenziale Qualora la DFS in modalità ricorsiva sia troppo memory-consuming si può adottare come strategia: la versione iterativa Qualunque algoritmo può essere implementato usando le sole seguenti strutture: sequenza, ciclo e selezione Quando due o più chiavi nel dizionario hanno lo stesso valore hash: avviene una collisione Quando l'insieme delle chiavi memorizzate in un dizionario è molto più piccolo dell'universo di tutte le chiavi possibili:
una tabella hash richiede molto meno spazio di una tabella a indirizzamento diretto Quando l'universo delle chiavi è relativamente piccolo: la funzione di hash che si usa è l'identità Quando l'universo delle chiavi è relativamente piccolo: la funzione hash fornisce come valore hash il valore stesso della chiave Questo albero: è bilanciato Questo codice: consente di gestire un nodo di un albero binario Quick Sort è in generale: instabile
Quick Sort è in place perché: non introduce strutture dati ausiliarie che dipendono dalla grandezzadell'array
Quick Sort è in place: si Quick Sort nel caso medio: È come Merge Sort Quick Sort nel caso peggiore: È come Selection Sort Quick Sort nel caso peggiore: È come Bubble Sort Quick Sort non è stabile perché: altera gli elementi chiave Replit è un: SaaS Rispetto alla tassonomia classica, una lista risulta: dinamica, sparsa, ordinata Se il grafo in esame è una foresta, la BFS esplora: solo la porzione di grafo raggiungibile da nodo di partenza
Se il grafo in esame è una foresta, la DFS esplora: l'intera componente connessa che contiene quel nodo, e poi passa allasuccessiva, fino a esplorare tutte le componenti
Se il limite per n tendente all'infinito di f(n)/g(n) è 0: f(n) è O grande di g(n) Se il limite per n tendente all'infinito di f(n)/g(n) è infinito: f(n) è Omega grande di g(n)
Se il limite per n tendente all'infinito di f(n)/g(n) è un numero finito: f(n) è Theta grande di g(n) Se il numero inserito nel tabellone del sudoku non soddisfa i vincoli o se la ricorsione successiva fallisce nel trovare una soluzione, rimuovendo il numero inserito nella cella corrente e provando il numero successivo, si sta adottando:
backtracking
Se il nuovo nodo inserito in un albero rosso nero, ha un padre nero: non si devono fare modifiche
Se l'algoritmo trovato non è il migliore per risolvere quel problema: non avremo risposto alla domanda "qual è la complessità del mioproblema"
Se n è il numero di nodi ed m il numero di archi, la complessità della BFS-TREE è pari a: O(n+m) Se non si libera la memoria allocata dinamicamente: si rischia un memory leak Se non si possono cioè fare ipotesi sulla posizione fisica degli elementi in memoria si dice che la struttura è: sparsa Se per ogni coppia di vertici esiste un cammino che li collega: il grafo è detto connesso Se tutti i nodi in un ciclo sono distinti (ad esclusione del primo e dell'ultimo) il ciclo è detto: semplice Se u è un antenato di v in un albero di copertura T, (u,v) è detto: arco in avanti Se u è un discendente di v in un albero di copertura T, (u,v) è detto: arco all'indietro Se u non è un antenato, né un discendene di v in un albero di copertura T, (u,v) è detto: arco di attraversamento Se un arco/spigolo ha gli estremi coincidenti in un solo vertice: è detto anello Se una funzione è sia O(g(n)) che ?(g(n): allora è ?(g(n)) Selection Sort è in generale: instabile
Selection Sort è in place perché: non introduce strutture dati ausiliarie che dipendono dalla grandezzadell'array
Selection Sort è in place: si Selection Sort nel caso medio: È come Bubble Sort Selection Sort nel caso peggiore: È come Quick Sort Selection Sort non è stabile perché: altera gli elementi chiave Selection sort: È quadratico Sia la programmazione dinamica che la memoization producono: una tabella delle soluzioni Stabilire se un grafo è connesso: È un problema decisionale Tale albero: è rosso-nero Tale classe Node è definita in linguaggio: Python Tale codice rappresenta una visita in pre-order: iterativa Tale funzione può essere correttamente definita come: insertLeft Tale funzione può essere correttamente definita come: insertRight Tale funzione: è corretta Tale grafo è un esempio di: foresta Tale procedura di visita di un grafo: comporta l'inserimento dello stesso elemento più volte nella coda Tale procedura rappresenta: una visita BFS Tale rappresentazione può essere usata per: rappresentare il nodo di un albero generico Tale schema può determinare un grafo degli intervalli: si Tale schema può essere usato per modellare: un sudoku Tale struttura di nodo: può essere usata per un albero generico Tipo di memoria che persiste per l'intera esecuzione del programma ed è utilizzata tipicamente per memorizzare variabili globali: static
Una delle seguenti non è una operazione elementare: iterazione Una equazione di ricorrenza esprime il tempo di esecuzione totale di un problema di dimensione n: in funzione del tempo di esecuzione per input più piccoli Una funzione hash che usa i bit meno significativi: genera collisioni Una funzione hash che usa un certo numero di bit all'interno della parola: genera collisioni Una funzione hash si dice perfetta: se è iniettiva Una funzione polinomiale è: O(n^2) Una funzione polinomiale è: ?(n^2) Una lista dinamica può essere rappresentata tramite: puntatori Una lista è un multi-insieme, cioè: ci possono essere ripetizioni del medesimo elemento Una pila: può essere usata per la valutazione di una espressione Una Python List ammette: dati non omogenei Una rotazione a destra consiste nel prendere il nodo figlio sinistro del nodo da ruotare:
e promuoverlo a nodo padre, spostando il nodo padre corrente come suo figlio destro:
Una rotazione a destra è utile: quando il figlio sinistro del nodo da ruotare ha una altezza maggiorerispetto al figlio destro
Una rotazione a sinistra è utile: quando il figlio destro del nodo da ruotare ha una altezza maggiorerispetto al figlio sinistro
Una sequenza di nodi adiacenti per andare da un nodo X ad un nodo Y in un grafo, con alcuni nodi ripetuti è detta: percorso Una sequenza di nodi adiacenti per andare da un nodo X ad un nodo Y in un grafo, senza nodi ripetuti è detta: cammino
Una soluzione ottima per il problema della schedulazione dei job: pone i job con il minor tempo di fine in sequenza (dal più corto al piùlungo).
Una struttura dati concreta: È l'implementazione di una struttura astratta
Una struttura dati: fornisce una rappresentazione organizzata e logica dei dati all'interno diun insieme
Una struttura dinamica è una struttura che è pensata: per aggiungere o togliere elementi durante l'esecuzione di un algoritmo Uno dei problemi dello stack è: memory shortage Visita i nodi 'espandendo' la frontiera fra nodi scoperti / da scoprire, stiamo parlando di: visita in ampiezza Visita i nodi andando il 'più lontano possibile' nel grafo, stiamo parlando di: visita in profondità While {condizione} do {corpo} end while: indica una iterazione