¿Como Ordenar Vectores en C#?

publicado por: Anonymous

Como puedo hacer que mi vector se ordene de menor a mayor, lo que pasa es que ya tengo mi método que debería de realizar eso, solo que tengo un problema de lógica, ya que me marca error al momento de realizar mi if

 public void ordeanar()
        {
            for (int x = 0; x < vector.Length; x++)
            {
                for (int k = 0; k < vector.Length - x;k++ )
                {

                    if (vector[k] < vector[k + 1]) --> ERROR
                    {
                        int aux;
                        aux = vector[k];
                        vector[k] = vector[k + 1];
                        vector[k + 1] = aux;
                    }

                }
            }
        }

solución

Al parecer se trata del algoritmo de la burbuja. Si es así, entonces lo correcto sería:

public void ordeanar()
    {
        for (int x = 0; x < vector.Length-1; x++)
        {
            for (int k = 0; k < vector.Length-1 - x;k++ )
            {

                if (vector[k] < vector[k + 1])
                {
                    int aux;
                    aux = vector[k];
                    vector[k] = vector[k + 1];
                    vector[k + 1] = aux;
                }

            }
        }
    }

Se le resta uno a la longitud total del vector para que no dé error cuando se pida vector[k+1], estando en la última iteración, en donde k debería ser igual a vector.length - 2

Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *