Introducción
En este laboratorio, aprenderá a realizar el ordenamiento por selección para ordenar una matriz dinámica no ordenada en C++ utilizando el algoritmo de ordenamiento por selección.
En este laboratorio, aprenderá a realizar el ordenamiento por selección para ordenar una matriz dinámica no ordenada en C++ utilizando el algoritmo de ordenamiento por selección.
Primero, crea un nuevo archivo de C++ llamado main.cpp en el directorio ~/project.
touch ~/project/main.cpp
El algoritmo de ordenamiento por selección funciona seleccionando el elemento mínimo y colocándolo al principio del arreglo, luego seleccionando el siguiente elemento mínimo del resto del arreglo y colocándolo en el índice 1, y así sucesivamente hasta que el arreglo esté completamente ordenado. Aquí está cómo implementar el algoritmo de ordenamiento por selección en C++:
#include <iostream>
using namespace std;
// función para intercambiar la posición de dos elementos
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
// función para realizar el algoritmo de ordenamiento por selección
void selectionSort(int array[], int size) {
for (int step = 0; step < size - 1; step++) {
int min_idx = step;
for (int i = step + 1; i < size; i++) {
// Para ordenar en orden descendente, cambie > a < en esta línea.
// Seleccione el elemento mínimo en cada ciclo.
if (array[i] < array[min_idx])
min_idx = i;
}
// coloque el mínimo en la posición correcta
swap(&array[min_idx], &array[step]);
}
}
En este bloque de código, definimos una función swap() para intercambiar la posición de dos elementos en el arreglo, y una función selectionSort() para realizar el algoritmo de ordenamiento por selección en el arreglo.
En este paso, ingresarás el arreglo dinámico que necesita ser ordenado. Puedes hacer esto pidiendo al usuario que ingrese los elementos del arreglo uno por uno:
// código principal
int main() {
int size;
cout<<"Ingrese el tamaño del arreglo: ";
cin>>size; //ingresa el tamaño del arreglo
int* data = new int[size]; //Declara dinámicamente el arreglo
// Ingresa los elementos del arreglo uno por uno
for(int i = 0; i < size; i++) {
cout<<"Ingrese el elemento "<<i+1<<" : ";
cin>>data[i];
}
Ahora que tenemos el arreglo no ordenado, podemos aplicar el algoritmo de ordenamiento por selección sobre él utilizando la función selectionSort() que definimos anteriormente. Aquí está cómo hacerlo:
// Realiza el ordenamiento por selección
selectionSort(data, size);
Finalmente, mostraremos el arreglo ordenado en la consola utilizando un bucle en una función llamada printArray(). Aquí está cómo hacerlo:
// Muestra el arreglo ordenado
cout << "\nArreglo ordenado: ";
for (int i = 0; i < size; i++)
cout << data[i] << " ";
// Libera la memoria utilizada por el arreglo dinámico
delete[] data;
return 0;
}
Para compilar y ejecutar el código, abre la terminal y navega hasta la carpeta donde se encuentra almacenado tu archivo main.cpp. Luego ejecuta los siguientes comandos:
g++ main.cpp -o main
./main
El arreglo ordenado debería mostrarse en la consola.
En este laboratorio, has aprendido cómo utilizar el algoritmo de ordenamiento por selección para ordenar un arreglo dinámico no ordenado en C++. Para hacer eso, tuviste que ingresar el arreglo, implementar el algoritmo de ordenamiento por selección, realizar la ordenación, mostrar el arreglo ordenado y luego compilar y ejecutar el código en la terminal. Con estas habilidades, podrás ordenar arreglos de cualquier tamaño utilizando el ordenamiento por selección.