[SOLUCIONADO] duda algoritmo ordenacion c#

Iniciado por CrÄsH, 20 Marzo 2009, 16:34 PM

0 Miembros y 1 Visitante están viendo este tema.

CrÄsH

Buenas, en este algoritmo de ordenacion, donde o como pondriais un contador para saber el numero de comparaciones que hace hasta k este ordenado.


            int i, j, posPetit = 0;

            for (i = 0; i < t.Length - 1; i++)
            {
                posPetit = i;
                for (j = i + 1; j < t.Length; j++)
                {
                    if (t[posPetit] > t[j])
                        posPetit = j;

                }
                if (t[posPetit] != t[i])
                {
                    Intercanvi(ref t[i], ref t[posPetit]);
                   
                }

            }


La ordenacion no importa lo unico k importe es saber el numero de comparaciones k hace.Y el contador no va en ninguno de los 2 if.

Gracias
~~~~~~~~~~~~~~~~

CrÄsH

~~~~~~~~~~~~~~~~

Hadess_inf

deberia ir en el segudo for.
Saludos

CrÄsH

Cita de: Hadess_inf en 23 Marzo 2009, 18:32 PM
deberia ir en el segudo for.
Saludos

no va en el segundo for, ya k si ordenamos un vector de 100 posiciones ya ordenado salen las mismas iteraciones que uno desordenado.
En cual deberia de ir??
~~~~~~~~~~~~~~~~

Choclito

#4
ahi te dejo una idea ojala que te sirva(nota:echo en block de notas no compilado).


int n;
int i,j;
int c=0,aux,k=0;
int l=0;
Console.Write("Ingrese N:");
n=int.Parse(Console.ReadLine());
int[]Array=new int[N];
for(i=0;i<Array.Length;i++)
{
  Array[i]=int.Parse(Console.ReadLine());
}
//Ordenamos
for(i=1;i<Array.Length;i++)
{
  for(j=Array.Length-1;j>=i;j--)
    {
      c++;
     if(Array[j-1]>Array[j])//si se cumple enta ah  Intercambiar
      {
    aux=Array[j-1];
    Array[j-1]=Array[j];
    Array[j]=aux;    
    k=1;
    l=l+1;
       }
    }
  if(k==0)
break;//Fin del Recorrido Porque el Array ya Esta Ordenado
}
Console.WriteLine("El Total de Comparaciones que Hizo fue de:"+c);
Console.WriteLine("El Total de Intercambios que Hizo fue de:"+l);
Console.Read();

CrÄsH

gracias Choclito!! ya lo solucione.
~~~~~~~~~~~~~~~~