martes, 13 de febrero de 2024

C# 015 ► Ordenar arreglo de menor a mayor

 Ejercicio 015: Pedir el tamaño de un arreglo, llenarlo y ordenarlo de forma ascendente.


using System;

public class Program {
    public void Ordenar(int[] _numeros) {
        int aux;

        for (int x = 0; i < _numeros.Length; x++) {
            for (int y = x + 1; y < _numeros.Length; y++) {
                if (_numeros[y] < _numeros[x]) {
                    aux = _numeros[y];
                    _numeros[y] = _numeros[x];
                    _numeros[x] = aux;
                }
            }
        }

        Console.WriteLine("Arreglo ordenado:");
        for (int i = 0; i < _numeros.Length; i++) {
            Console.Write(_numeros[i] + ", ");
        }
    }

    public static void Main(string[] args) {
        Program metodos = new Program();

        Console.WriteLine("¿Cuántos números contendrá el arreglo?");
        int tam = int.Parse(Console.ReadLine());
        Numeros = new int[tam];

        for (int i = 0; < Numeros.Length; i++) {
            Console.WriteLine("Ingresa número " + i + "/" + tam);
            Numeros[i] = int.Parse(Console.ReadLine());
        }

        Console.WriteLine("Arreglo sin ordenar:");
        for (int i = 0; i < Numeros.Length; i++) {
            Console.Write(Numeros[i] + ", ");
        }
        Console.WriteLine();

        metodos.Ordenar(Numeros);
    }
}



En este ejemplo, la ordenación ascendente del arreglo se hace en el método "Ordenar", que se manda a llamar mediante el objeto "metodos" pasándole como parámetro el arreglo "Numeros" previamente llenado.

El método de ordenación empleado en este ejercicio es el de la "burbuja", el cual consiste en comparar cada uno de los elementos con los restantes verificando si alguno es menor, si es así se intercambian, y así hasta que se revise todo el arreglo, al final los números quedan ordenados.

Este método es para efectos explicativos, otra forma de hacerlo es usar el método propio de C# "Array.Sort()", el cual recibe como parámetro el arreglo que se desea ordenar, considerando este ejemplo sería:

    Array.Sort(Numeros);    //Si se usa en main
    Array.Sort(_numeros);   //Dentro del método Ordenar