Domanda su Esercizio Array

di il
5 risposte

Domanda su Esercizio Array

Salve a tutti ragazzi, avrei una domanda da porvi su un esercizio che ho trovato, praticamente ti fa inserire i valori nell'array e poi te lo riordina.. il cosidetto bubble sort...:
#include <iostream>
#include<cstdlib>

using namespace std;

int main()
{
    int b,size,t,i,m,a,f;
    int ciao [10];
    size=10;
    cout << "l'array originale e':\n";
for(i=0;i<=9;i++){
    cout<< "inserisci un numero: ";
    cin >> f;
    ciao[i]=f;
    cout<< ciao[i]<< "\n";
}

[color=#FF8000]for(m=1;m<size;m++)[/color]{
for(b=size-1;b>=1;b--){
    if(ciao[b-1]>ciao[b]){
            t=ciao[b-1];
            ciao[b-1]= ciao[b];
            ciao[b]=t;

    }
}
}
cout << "\n\n\n"<< "ecco l'array ordinato \n";
for(a=0;a<=9;a++){
    cout << ciao[a]<< "\n";
}
}
Praticamente non capisco come mai nel FOR evidenziato, ci debbano essere 9 iterazioni, non capisco il concetto...

Grazie mille
Buona Giornata

5 Risposte

  • Re: Domanda su Esercizio Array

    Salve
    Devi considerare che un array di N elementi ha indici da 0 a N-1.
  • Re: Domanda su Esercizio Array

    Ma allora avrei dovuto mettere nell'inizializzazione m=0 ma in realtà c'è m=1... non capisco perche bastino solo (in questo caso) 9 iterazioni..
    Grazie mille
  • Re: Domanda su Esercizio Array

    Ops, avevo sbagliato for (forse stavo ancora dormendo)
    Comunque la variabile m si utilizza per tenere conto del numero dei confronti e purché l'array sia ordinato nel "peggiore dei casi" servono N-1 serie di confronti (dove N è la lunghezza dell'array).
  • Re: Domanda su Esercizio Array

    Beh, fai il conto. Immagina il caso peggiore, cioè che il numero più basso si trovi nell'elemento più distante dal suo posto (ovvero l'ultimo). Quanti passaggi deve fare per far si che l'ultimo elemento arrivi nella prima posizione? Deve passare da 10 a 9, da 9 a 8.... da 3 a 2 e da 2 a 1. Se fai il conto su 10 elementi sono 9 spostamenti. Questo nel caso peggiore sennò nella maggior parte dei casi l'array è già bello che ordinato prima dei 9 cicli di for
  • Re: Domanda su Esercizio Array

    Grazie mille ragazzi!!
Devi accedere o registrarti per scrivere nel forum
5 risposte