Programa básico en C++ para ordenar...

Ejemplo de un programa - básico - en C++ que ordena un vector de n elementos utilizando dos métodos diferentes: 

Método de selección

El método de selección es un algoritmo de ordenación simple que opera encontrando repetidamente el elemento mínimo (o máximo) de un vector, colocándolo al principio. El algoritmo divide al vector en dos partes: un subvector ordenado y un subvector no ordenado. 

En cada iteración, se busca el elemento mínimo del subvector no ordenado y se intercambia con el primer elemento del subvector ordenado. 

Este proceso continúa hasta que el subvector no ordenado esté vacío y el vector completo esté ordenado. El método de selección es fácil de entender y de implementar, pero no es eficiente para vectores o listas grandes debido a su complejidad cuadrática.

Este método, por el número de operaciones de comparación e intercambio que realiza, es adecuado para ordenar pocos registros de gran tamaño.

Método de burbuja

El método de burbuja es otro algoritmo de ordenación simple que funciona comparando pares de elementos adyacentes e intercambiándolos si están en el orden incorrecto. El algoritmo recorre repetidamente la lista o vector, comparando los elementos adyacentes y realizando intercambios si es necesario. 

Los elementos más grandes “burbujean” hacia arriba a medida que el algoritmo progresa, de ahí su nombre. Este proceso continúa hasta que no se requieran más intercambios, lo que indica que el vector está ordenado. Al igual que el método de selección, el método de burbuja también tiene una complejidad cuadrática y no es eficiente para listas o vectores grandes.

En tal sentido, este algoritmo funciona de forma parecida al de Selección, pero haciendo más trabajo para llevar cada elemento a su posición. De hecho, es menos eficiente, no solo en cuanto al tiempo de ejecución, sino también respecto al número de comparaciones y de intercambios que realiza.


Programa en C++

#include <iostream>
#include <vector>

// Función para imprimir el vector

void imprimirVector(const std::vector<int>& vec) {
    for (int num : vec) {
        std::cout << num << " ";
    }
    std::cout << std::endl;
}
// Función para ordenar el vector utilizando el método de selección
void ordenarPorSeleccion(std::vector<int>& vec) {
    int n = vec.size();
    for (int i = 0; i < n - 1; i++) {
        int minIndex = i;
        for (int j = i + 1; j < n; j++) {
            if (vec[j] < vec[minIndex]) {
                minIndex = j;
            }
        }
        std::swap(vec[i], vec[minIndex]);
    }
}

// Función para ordenar el vector utilizando el método de burbuja

void ordenarPorBurbuja(std::vector<int>& vec) {
    int n = vec.size();
    for (int i = 0; i < n - 1; i++) {
        for (int j = 0; j < n - i - 1; j++) {
            if (vec[j] > vec[j + 1]) {
                std::swap(vec[j], vec[j + 1]);
            }
        }
    }
}

int main() {
    int n;
    std::cout << "Ingrese la cantidad de elementos del vector: ";
    std::cin >> n;
    std::vector<int> vec(n);
    std::cout << "Ingrese los elementos del vector: ";

    for (int i = 0; i < n; i++) {
        std::cin >> vec[i];
    }

    std::cout << "Vector original: ";
    imprimirVector(vec);
    std::cout << "Ordenando por selección..." << std::endl;
    ordenarPorSeleccion(vec);
    std::cout << "Vector ordenado por selección: ";
    imprimirVector(vec);
    std::cout << "Ordenando por burbuja..." << std::endl;
    ordenarPorBurbuja(vec);
    std::cout << "Vector ordenado por burbuja: ";
    imprimirVector(vec);
    return 0;
}

 

Explicación breve del programa:

  • En la primera línea del programa, se incluyen las bibliotecas iostream y vector.
  • Luego, se define una función llamada imprimirVector que toma un vector como argumento y lo imprime en la consola.
  • Después, se define una función llamada ordenarPorSeleccion que toma un vector como argumento y lo ordena utilizando el método de selección. Este método selecciona repetidamente el elemento más pequeño y lo coloca en la posición correcta.
  • A continuación, se define una función llamada ordenarPorBurbuja que toma un vector como argumento y lo ordena utilizando el método de burbuja. Este método compara repetidamente pares de elementos adyacentes y los intercambia si están en el orden incorrecto.
  • Dentro de la función main, se declara una variable n donde se almacenará la cantidad de elementos del vector ingresada por el usuario.
  • Se muestra un mensaje en la consola pidiendo al usuario que ingrese los elementos del vector, y se emplea un bucle for para leer los elementos uno por uno y almacenarlos en el vector vec.
  • Se muestra en la consola el vector original usando la función imprimirVector.
  • A continuación, se llama a la función ordenarPorSeleccion para ordenar el vector utilizando el método de selección. Se muestra en la consola el vector ordenado usando nuevamente la función imprimirVector.
  • Luego, se llama a la función ordenarPorBurbuja para ordenar el vector empleando el método de burbuja. Se muestra en la consola el vector ordenado utilizando nuevamente la función imprimirVector.

Post relacionados: 


Con más vistas en el último mes

Diferencias entre "proceso", "actividad" y "tarea"

Importancia de la música para los niños…

¿Ya estás utilizando las alertas de Google académico?