Ordenamiento por Inserción en C: Algoritmo y Ejemplo Práctico
Clase 24 de 42 • Curso Práctico de Estructuras de Datos y Algoritmos
Contenido del curso
Introducción a los algoritmos
- 2

Cómo Funcionan las Computadoras y el Sistema Binario
08:25 min - 3

Introducción a Lenguajes de Programación: Bajo y Alto Nivel
04:07 min - 4

Estructuras de Datos para Rutas Más Cortas en Mapas
07:14 min - 5

Algoritmo de Dijkstra para encontrar la ruta más corta
04:18 min - 6

Metodología para Resolver Algoritmos Paso a Paso
03:24 min - 7

Variables y Tipos de Datos en Programación
01:24 min - 8

Creación de Tipos de Datos Personalizados en C
04:22 min - 9

Configuración de Ubuntu en Windows 10 para C/C++
00:52 min - 10

Implementación de User Defined Data Type en C: Estructuras paso a paso
13:33 min - 11

Tipos de Datos Abstractos y Estructuras de Datos en Programación
07:21 min - 12

Tipos Abstractos de Datos: Lista, Pila, Cola y Diccionario
08:50 min - 13

Tipos Abstractos de Datos: Listas, Pilas y Colas
02:26 min - 14

Clases y objetos
00:00 min - 15

Colas y estructuras de datos: gestión de pedidos en restaurante
03:39 min - 16

Implementación de Queues con Arrays en Visual Studio Code
06:17 min - 17

Implementación de Abstract Data Type en C: Función enqueue
13:31 min - 18

Implementación de la función dequeue en estructuras de datos en C
08:03 min - 19

Implementación de Colas en C: Declaración y Uso de Funciones Básicas
07:31 min
Algoritmos de ordenamiento
- 20

Algoritmos de Ordenamiento: Conceptos y Aplicaciones Básicas
06:48 min - 21

Funcionamiento del Algoritmo de Ordenamiento Burbuja
06:55 min - 22

Implementación de Bubble Sort en C paso a paso
12:29 min - 23

Implementación de Bubble Sort en C y función de impresión
10:52 min - 24

Ordenamiento por Inserción en C: Algoritmo y Ejemplo Práctico
Viendo ahora - 25

Algoritmos de Ordenamiento Descendente: Implementación Práctica
00:12 min
Recursividad
Divide and conquer y programación dinámica
- 30

Diseño y análisis de algoritmos: Divide y vencerás
03:02 min - 31

Introducción a Programación Dinámica y Quicksort
03:13 min - 32

Ordenamiento de Arrays con MergeSort en C
01:33 min - 33

Algoritmos de Ordenamiento de Datos de Mayor a Menor
00:13 min - 34

Algoritmo Quicksort en Python: Implementación y Funcionamiento
12:50 min - 35

Ordenamiento Quick Sort en Python paso a paso
05:07 min
Algoritmos 'Greedy'
Grafos y árboles
¿Cómo comparar Algoritmos?
¿Qué sigue?
Insertion Sort es un algoritmo simple que ordena individualmente cada valor, como lo harías al ordenar un set de cartas del juego UNO en tu mano.
Como puedes observar en la imagen, recorremos nuestro set de datos posición por posición y comparamos el número con los valores anteriores, en caso de ser menor, lo colocamos en su posición indicada para ordenar de menor a mayor.
#include <stdio.h> #include <math.h> /* Función de insertion Sort*/ void insertionSort(int arr[], int n) { int i, currentVal, j; for (i = 1; i < n; i++) { currentVal= arr[i]; //obtenemos el valor actual a comparar j = i-1; /* mueve los elementos del arreglo arr[0..i-1],que son mayores que el valor de la posición actual del recorrido, a una posición adelante de su posición actual */ while (j >= 0 && arr[j] > currentVal) { arr[j+1] = arr[j]; j = j-1; } arr[j+1] = currentVal; } } // función auxiliar para imprimir un arrary de tamaño n void printArray(int arr[], int n) { int i; for (i=0; i < n; i++) printf("%d ", arr[i]); printf("\n"); } /* Driver program to test insertion sort */ int main() { int arr[] = {6, 4, 3, 11, 10}; int n = sizeof(arr)/sizeof(arr[0]); insertionSort(arr, n); printArray(arr, n); return 0; }