mikael_c
05-02-2014, 08:06
data una matrice di adiacenza m[i][j] questa rappresenta un grafo composto da valori 0 e 1.su questa matrice calcolo il grado in uscita(outdegree) per ogni vertice. Come posso scrivere un metodo che mi ordini i vertici del grafo in base all'outdegree minore??
io ho creato un metodo di ordinamento però non va bene in quanto mi ordina il tutto in ordine crescente solo secondo i valori del outdegree[i].Si può modificare in moda da funzionare secondo quanto riportato sopra, o conoscete un metodo più semplice ed efficace?
void ordineCrescenteOutdegree() {
int i,j;
int temp;
for(i = 0; i<n-1; i++)
{
for(j = 0; j<n-1-i; j++)
{
if(outdegrees[j] > outdegrees[j+1]) {
temp = outdegrees[j];
outdegrees[j] = outdegrees[j+1];
outdegrees[j+1] = temp;
}
}
io ho creato un metodo di ordinamento però non va bene in quanto mi ordina il tutto in ordine crescente solo secondo i valori del outdegree[i].Si può modificare in moda da funzionare secondo quanto riportato sopra, o conoscete un metodo più semplice ed efficace?
void ordineCrescenteOutdegree() {
int i,j;
int temp;
for(i = 0; i<n-1; i++)
{
for(j = 0; j<n-1-i; j++)
{
if(outdegrees[j] > outdegrees[j+1]) {
temp = outdegrees[j];
outdegrees[j] = outdegrees[j+1];
outdegrees[j+1] = temp;
}
}