BuonGiorno
Ci sto' impazzendo, ma oggi non ho la mente lucida, infatti non riesco a fare un Sort di un Array a due dimensioni
int valore[10][2] = {
{1, 0 },
{1500, 1},
{3000, 2},
{10, 3},
{2500, 4},
{2000, 5},
{3500, 6},
{4000, 7},
{500, 8},
{250, 9}
};
Il Sort riesco a farlo, solo che non riesco a portarmi dietro anche il secondo valore
dovrebbe venire cosi;
4000 7
3500 6
3000 2
2500 4 etc etc
e invece il secondo parametro riesco solo a mtterlo in ordine crescente
Sarà che oggi sei perseguitato dalla mala...sort..e.
Ma come lo fai questo ordinamento?
Cosa ti impedisce di ordinare sul primo e quando lo sposti portarti dietro anche il secondo?
Bella domanda.
Il sort sul primo non ' un problema, è che non riesco a portarmi dietro il secondo
void Sort() {
int i, j, app;
for (i = 0; i < 10 ; i++)
{
app = valore[i][0];
for (j = i - 1; (j >= 0) && (valore[j][0] < app); j--)
valore[j + 1][0] = valore[j][0];
valore [j + 1][0] = app;
}
}
Mi pare devi non solo salvarti in app il valore ma anche salvarti l'indice oppure salvare anche altro elemento
Sicuramente nel for interno non puoi scambiare di posto solo gli elementi [ 0 ] ma anche gli elemento [ 1 ]
for (i = 0; i < 10 ; i++)
{
app1 = valore[i][0];
app2 = valore[i][1];
for (j = i - 1; j >= 0 && valore[j][0] < app1; j--)
{ valore[j + 1][0] = valore[j][0];
valore[j + 1][1] = valore[j][1];
}
valore [j + 1][0] = app1;
valore [j + 1][1] = app2;
}
Oltretutto assegnavi a valore[j+1][0] prima valore[j][0] e subito dopo app...
Grazie ragazzi,
@nid69 I like you 
Prego, di nulla. 
Hai preso il codice da qui ? Ordinamento (programmazione in C) - Wikiversità
Belle le animazioni.
A me viene più naturale il selection sort o il bubble sort (senza ricorsione)