Programma ordinamento insertion sort

di Anonimizzato8504 il
5 risposte
Salve 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;
}

5 Risposte

  • Veramente l'algoritmo già l'ho scritto
    mi servirebbe che mi aiutaste a capire dove ho sbagliato nel codice del programma
  • E 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?
  • Ma il mio algoritmo è sbagliato del tutto o si può aggiustare?
  • Il 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++.
Devi accedere o registrarti per scrivere nel forum
5 risposte