In realtà il tuo problema di ordinamento riguarda un vettore (quindi, puoi utilizzare uno degli innumerevoli algoritmi già esistenti). Data una matrice con N righe e M colonne:
- crei un array di float (per i "moduli") di lunghezza N;
- crei un array di int (per tenere traccia del riordinamento delle righe) di lunghezza N;
- riempi il primo array con i "moduli";
- inizializzi il secondo array con i valori da 0 a N-1;
- esegui l'ordinamento sul primo array e, parallelamente, tieni aggiornati di conseguenza gli indici del secondo array;
- analizzando gli indici-riga presenti nel secondo array riordini la matrice.

Cosa ne pensi?