Mi sono perso in un passaggio

tenebrikko
qui ho un programmino in cui non capisco come interpretare un passaggio:
int i, j, k;
int m1[100], m2[100], quad[100];
k = 0;
for (i=1; i<=5; i++)
   for (j=i; j<=5; j++)
  {
      m1[k] = i*i;
      m2[k] = j*j;
      quad[k] = m1[k] + m2[k];
      k++;
   }

bubble(quad, m1, m2, k);

for(i=0;i<k;i++)
    printf ("[%3d]: %3d + %3d = %4d\n",
             i+1, m1[i], m2[i], quad[i]);


void bubble(int * master, int * arr2, int * arr3, int dim)
 {
   int ult, j;
   for (ult=dim-1; ult>=1; ult--)
   {
     for(j=0; j<(ult-1); j++)
    {
     if (master[j] > master[j+1]) {
           scambia(&master[j], &master[j+1]);
           scambia(&arr2[j], &arr2[j+1]);
           scambia(&arr3[j], &arr3[j+1]);
     }
    }
   }
  

void scambia (int * a, int * b)
{
  int temp;
  temp = *a; *a=*b; *b=temp;
}

mi perdo nel 'if' del primo void quando c'è scritto master[j] > master[j+1]; master sta a indicare quad ma quel j non capisco cosa indichi! si riferisce al k?
grzie mille!

Risposte
edge1
il K non centra nulla non è all'interno della funzione,quel j è l'indice del for cmq l'algoritmo lo hai capito,mi pare il bubble sort per ordina un array..

tenebrikko
si è un sistema per ordinare l'array.. però allora non capisco master[j+1] cos'è! cioè si riferisce a quad, però quel +1 indica che devo confrontarlo col quad successivo creato? grazie

edge1
si lo confronta con l'elemento successivo per vedere se è maggiore minore..nel caso lo scambia..

tenebrikko
ti ringrazio davvero :)

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.