Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
allora... la matrice è un vettore di vettori, che chiameremo M[COLONNE][RIGHE]
la cosa è molto semplice: devi scrivere una funzione di ordinamento, possibilmente prendendo qualche algoritmo già esistente ed efficiente (la fantasia è una bella cosa ma a volte è meglio usare quella degli altri!! )
quicksort è uno degli algoritmi più veloci, counting sort o radix sort sono più efficienti ma hanno delle restrizioni, vedi tu cosa fare. (se la matrice è non è molto grande basta acneh un semplice insertion sort)
dopodiche
con il ciclo
for (i = 0; i < COLONNE; i++)
quicksort(M[ i ]);
verrà passata alla funzione quicksort (di ordinamento) ogni colonna
ovviamente devi stare attendo a com inserisci i dati nel vettore, xche se no ordini le righe al posto delle colonne, ma fai una semplice prova e vedi!
Ultima modifica effettuata da eddiewrc il 24/10/2008 alle 23:56
la cosa migliore è sfruttare le funzioni di libreria già scritte.
La qsort è una funzione dichiarata in <stdlib.h>
il problema è che si vuole l'ordinamento per colonne, per questo occorre trasporre la matrice prima di effettuare gli ordinamenti.
ecco una possibile implementazione. Semplificata al massimo.
Ovviamente per trattare matrici di dimensioni superiori (diverse) occorre parametrizzare ulteriormente le funzioni