/Anonimizzato8504Utente anonimizzato12 apr 2011, 18:33Salve ragazzi avrei bisogno di un aiuto per risolvere l'algoritmo per l'ordinamento dei numeri in un array con il metodo dell'insertion sort avevo pensato prima definisco l'array con la sua dimensione fisica poi mi trovo la sua dimensione logica, dopodichè mi vado a costruire un ciclo che mi permette di trovare il minimo valore dell'array e lo vado a stampare, poi faccio la stessa cosa con i restanti sono arrivato a scrivere il codice fino al primo valore più piccolo, poi non sono sicuro come si faccia per ridefinire l'array eliminando il valore minimo che ho appena trovato comunque ecco il codice:(se potete correggermi l'ultima parte) #include<iostream> using namespace std; int main() { const int DIM=100; int x[DIM]; int LOG=0; int n=0; int d=0; //ora vado a vedere quanti elementi sono presenti nell'array (ovvero la sua dimensione logica) bool test=true; cout<<"Inserisci dei numeri o una lettera per terminare\n"; while(test && LOG<DIM) { cin>>n; if(!cin.fail()) { x[d]=n; d++; } else test=false; } LOG=d; cout<<endl<<" la dimensione logica dell'array è uguale a "<< d <<endl; // mi vado a fare un ciclo for per trovare il valore minimo dell'array int minimo=x[0]; for(int i=0;i<LOG;i++) { if (x<minimo) { minimo=x; cout<<minimo<<" "; } x[n]=x[n]-x; cout<<minimo<" "; } return 0; }
/Anonimizzato6541Utente anonimizzato12 apr 2011, 20:04http://it.wikipedia.org/wiki/Insertion_sort#Descrizione_dell.27algoritmo
/Anonimizzato8504Utente anonimizzato12 apr 2011, 22:33Veramente l'algoritmo già l'ho scritto mi servirebbe che mi aiutaste a capire dove ho sbagliato nel codice del programma
/Anonimizzato7532Utente anonimizzato13 apr 2011, 00:16E dov'è che avresti scritto l'algoritmo che io quì non lo vedo. L'algoritmo in questione è questo insertionSort(array A) for i ? 1 to length[A]-1 do value ? A[i] j ? i-1 while j >= 0 and A[j] > value do A[j + 1] ? A[j] j ? j-1 A[j+1] ? value Dov'è sto pezzo nel tuo codice?
/Anonimizzato8504Utente anonimizzato13 apr 2011, 17:08Ma il mio algoritmo è sbagliato del tutto o si può aggiustare?
/Anonimizzato7532Utente anonimizzato13 apr 2011, 17:41Il tuo non è un algoritmo, non so cos'è. Forse stai cercando il minimo ma poi? Iniziamo riga x riga ad implementare l'algoritmo. for i ? 1 to length[A]-1 do come lo scriveresti in c++.