Ordenar una matriz mediante el algoritmo de ordenación por inserción en C++

Este ejercicio se centra en la implementación del algoritmo de ordenamiento por inserción para ordenar un array de enteros. El ordenamiento por inserción funciona de forma similar a cómo ordenamos las cartas en nuestras manos. El algoritmo construye el array ordenado final elemento por elemento, comparando cada nuevo elemento con los anteriores e insertándolo en su lugar correspondiente. Aunque su complejidad temporal es de O(n²) en el peor de los casos, es intuitivo y funciona bien con conjuntos de datos pequeños o casi ordenados. Escribirás una función para realizar el ordenamiento por inserción y luego la usarás en la función principal para ordenar un array predefinido de enteros. Esta actividad te ayudará a comprender las técnicas básicas de ordenamiento y cómo se desplazan los elementos durante el ordenamiento.

Grupo

Algoritmos de Búsqueda y Ordenación en C++

Ojetivo

Cree una función llamada "insertionSort" que acepte un array de enteros y su tamaño. Dentro de la función, implemente el algoritmo de ordenamiento por inserción iterando por el array e insertando cada elemento en su posición correcta dentro de la parte ordenada. En la función principal, defina un array sin ordenar y use la función "insertionSort" para ordenarlo. Finalmente, imprima el array ordenado.

Cree un programa que ordene un array usando el algoritmo de ordenamiento por inserción.

Ejemplo de Código C++

 Copiar Código C++
#include <iostream>   // Include the input-output stream library
using namespace std;

// Function to perform insertion sort on an array
void insertionSort(int arr[], int size) {
    // Loop through elements starting from the second one
    for (int i = 1; i < size; i++) {
        int key = arr[i];      // Store the current element
        int j = i - 1;

        // Move elements greater than key to one position ahead
        while (j >= 0 && arr[j] > key) {
            arr[j + 1] = arr[j];  // Shift element to the right
            j = j - 1;            // Move to the previous element
        }

        arr[j + 1] = key;       // Place the key in its correct position
    }
}

int main() {
    // Declare and initialize an unsorted array
    int numbers[] = {9, 5, 1, 4, 3};
    int size = sizeof(numbers) / sizeof(numbers[0]);   // Calculate array size

    // Call the insertionSort function
    insertionSort(numbers, size);

    // Display the sorted array
    cout << "Sorted array: ";
    for (int i = 0; i < size; i++) {
        cout << numbers[i] << " ";
    }
    cout << endl;

    return 0;   // End of program
}

 Salida

Sorted array: 1 3 4 5 9 

Comparte este ejercicio C++

Más ejercicios de programación C++Algoritmos de Búsqueda y Ordenación en C++

¡Explora el conjunto de ejercicios de programación en C++! Diseñados específicamente para principiantes, estos ejercicios te ayudarán a desarrollar una sólida comprensión de los fundamentos de C++. Desde variables y tipos de datos hasta estructuras de control y funciones simples, cada ejercicio está diseñado para desafiarte gradualmente a medida que adquieres confianza en la programación en C++.