Skip to content

Instantly share code, notes, and snippets.

@spxwnmc
Last active December 17, 2020 03:46
Show Gist options
  • Save spxwnmc/045f6e2aad956460ef6ead2aef7467c7 to your computer and use it in GitHub Desktop.
Save spxwnmc/045f6e2aad956460ef6ead2aef7467c7 to your computer and use it in GitHub Desktop.
Ordenamiento por inserción
/**
* @file OrdenamientoPorInsercion.cpp
* @author Hernández Vázquez Luis Gerardo
* @brief Ordenamiento por inserción
* @date 2020-12-16
*
*
*/
#include <iostream>
void mostrarLista(int *);
using namespace std;
int tamArray;
int main(int argc, char const *argv[])
{
bool ward;
do
{
cout << "Ingrese el numero de elementos a ordenar> ";
cin >> tamArray;
int array[tamArray];
int *ptrArray = &*array;
for (int i = 0; i < tamArray; i++)
{
cout << "Ingrese el valor No " << i + 1 << ": ";
cin >> array[i];
}
mostrarLista(&*ptrArray);
int i, clave, j;
for (i = 1; i < tamArray; i++)
{
clave = *(array + i); // Se guarda el valor de la segunda posición
j = i - 1; //Nos ayudará para comparar los numeros anteriores a la clave
/**
* @brief Comparamos el valor de la clave con todos los valores anteriores
*
*/
while (j >= 0 && *(array + j) > clave)
{
*(array + j + 1) = *(array + j); //Se inserta el valor en su lugar correspondiente
j = j - 1;
}
*(array + j + 1) = clave; //Se actualiza la clave
mostrarLista(array); //Se manda a imprimir el estado de la lista
}
cout << "Ordenamiento final: ";
/**
* Una vez que todo esté odenado se imprime el contenido del array ordenado mediante el ordenamiento por inserción
*
*/
mostrarLista(array);
} while (ward);
return 0;
}
/**
* @brief Esta función nos permite mostrar el contenido del array haciendo un simple recorrido con un bucle for accediendo a la informacion mediante un apuntador que apunta a array[0];
*
* @param list Array por referencia
*/
void mostrarLista(int *list)
{
for (int i = 0; i < tamArray; i++)
{
cout << *list << " ";
list++;
}
cout << endl;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment