Ordinamento Insertion-sort e test

di il
1 risposte

Ordinamento Insertion-sort e test

Ciao a tutti Ho un piccolo problema con un esercizio dell universita che dice di scrivere un programma con funzione che in input un Array e in out l'array ordinato...ma poi chiede anche (dal testo):
Durante la fase di test si richiede di stampare su terminale i passi fondamentali dell'algoritmo in modo da poterne comprendere e seguire il funzionamento su array di piccole dimensioni. Una volta terminata la fase di test, si richiede di togliere le scritte su terminale dei passi intermedi in modo da poter ordinare velocemente array di grandi dimensioni.
Usare la compilazione condizionale (#define, #ifdef) per attivare o disattivare le stampe.


Il programma l'ho fatto anche perche abbastanza banale:
#include <iostream>

using namespace std;

#define DIM 2
#define test

void insertion_sort(int w[], int sz) {
 int j;
 int val;
#ifdef test
  cout<<"Primo elemento w[0]="<<w[0]<<"\n"; 
  
#endif
  for ( int i = 0; i < sz; i++) {
	  val = w [ i ];
	  j = i - 1;
   
	  while (j >= 0 && w[j] > val) {
		  w[j+1] = w[j];
		  j= j-1;
                 w [j+1]= val;
	  }
	}    
}

int main ()
{
  int v[DIM];
  unsigned i;

  for ( i = 0 ; i < DIM ; i++ ) {
    cout<<"inserisci valore > ";
    cin>>v[i];
  }
  insertion_sort(v, DIM);
  cout << "Ordinamento per inserzione terminato:\n";
  for ( i = 0 ; i < DIM ; i++ ) {
    cout<<"  v["<<i<<"]= "<<v[i]<<"\n";
  }
}
ma non riesco a capire come può avvenire un test dinamico se il codice è prefissato...dovrei aggiungere altre variabili e altri cicli?

Grazie mille in anticipo per le risposte che mi darete...

1 Risposte

  • Re: Ordinamento Insertion-sort e test

    Credo che vogliano semplicemente che gli stampi tutto l'array a ogni ciclo dell'ordinamento (quantomeno quando sposti un elemento).

    ciao
Devi accedere o registrarti per scrivere nel forum
1 risposte