Font size
WorksheetsScheda di verifica – Bubble Sort in C++ (Fila A)
Total questions: 14
Worksheet time: 9mins
Che cosa fa l'algoritmo di Bubble Sort?
Ordina un vettore confrontando ed eventualmente scambiando i valori maggiori del primo elemento del vettore
Ordina un vettore confrontando ed eventualmente scambiando coppie adiacenti
Confronta il primo e l'ultimo elemento del vettore e li scambia se il primo è maggiore dell'ultimo
Cerca un elemento nel vettore e lo inserisce in ordine crescente
Quale delle seguenti porzioni di codice rappresenta correttamente il ciclo principale del Bubble Sort in C++?
for (x = 0; x < TANTI - 1; x++){
for (y = 0; y < TANTI - 1 - x; y++)
if (numeri[y] > numeri[y + 1]){
temp = numeri[y];
numeri[y] = numeri[y + 1];
numeri[y + 1] = temp;
}
}
for (x = 0; x < TANTI - 1; x++){
for (y = 0; y < TANTI - 1 - x; y++)
if (numeri[y] > numeri[y + 1]){
numeri[y] = numeri[y + 1];
}
}
for (y = 0; y < TANTI - 1 - x; y++)
if (numeri[y] > numeri[y + 1]){
temp = numeri[y];
numeri[y] = numeri[y + 1];
numeri[y + 1] = temp;
}
for (x = 0; x < TANTI - 1; x++){
for (y = 0; y < TANTI - 1 - x; y++)
{
temp = numeri[y];
numeri[y] = numeri[y + 1];
numeri[y + 1] = temp;
}
}
Dopo il primo passaggio (del ciclo FOR interno) del Bubble Sort, quale sarà lo stato del vettore iniziale
{5, 3, 4, 1, 2}?
{3, 5, 4, 1, 2}
{2, 5, 4, 1, 3}
{4, 3, 1, 2, 5}
{3, 1, 2, 4, 5}
Qual è il ruolo della variabile temporanea (tempo) nel Bubble Sort?
Serve per scambiare due elementi del vettore
Serve per contare i cicli
Serve per ordinare in senso decrescente
Serve per memorizzare la media
Il Bubble Sort ordina i numeri di un vettore:
Sempre in senso crescente
Solo se sono tutti positivi
Confrontando coppie adiacenti e scambiandole se necessario
Utilizzando una funzione ricorsiva
Inserisci la parte di codice mancante:
for (x = 0; x < TANTI - 1; x++){
for (y = 0; y < TANTI - 1 - x; y++)
---------------------------
{
temp = numeri[y];
numeri[y] = numeri[y + 1];
numeri[y + 1] = temp;
}
}
(a)
Dopo due passaggi completi (ovvero 2 cicli FOR ESTERNI) come sarà ordinato parzialmente il vettore {5, 3, 4, 1, 2}?
{3, 4, 1, 2, 5}
{3, 1, 2, 4, 5}
{4, 1, 2, 3, 5}
{1, 2, 3, 4, 5}
Quali righe di codice realizza lo scambio corretto di due elementi in C++ ?
int temp=v[j];
v[j]=v[j+1];
v[j+1]=temp;
v[j]=v[j-1];
v[j+1]=v[j];
temp=v[j+1];
v[j]=temp;
v[j]=temp;
Cosa succede se si dimentica di limitare il ciclo interno a (TANTI-1-x)?
dove TANTI è il numero di elementi del vettore ed x è l'indice del ciclo FOR esterno:
Si rischia di confrontare e scambiare elementi già ordinati, rendendo l'algoritmo meno efficiente.
Non succede nulla di rilevante.
L'algoritmo diventa più veloce.
Si verifica un errore.
Per quale motivo l'algoritmo è detto "Bubble sort"?
Perchè l'ordinamento è fatto in maniera tale che i numeri più (a) scendano verso il basso
Alla fine di tutto il primo ciclo FOR più interno, l'elemento che sicuramente risulta ordinato, è :
(a)
Nell'algoritmo di Bubble Sort sono necessari sempre i 2 cicli FOR annidati?
No, se il vettore è costituito da pochi elementi
Sì, perché il ciclo interno confronta ogni coppia di elementi vicini ed eventualmente li scambia ed il ciclo esterno ripete questo processo più volte
Sì, perché il ciclo esterno confronta ogni coppia di elementi vicini ed eventualmente li scambia ed il ciclo interno ripete questo processo più volte
Sì se il vettore è troppo grande per essere ordinato in un solo ciclo
Alla fine della seconda iterazione del ciclo FOR esterno, quali elementi saranno sicuramente ordinati?
Ultimo
Ultimo e penultimo
Penultimo
Tutti
Nell'algoritmo di Bubble Sort due elementi del vettore non vengono scambiati se il precedente è (a) del successivo
