Aprendiendo Desarrollo

Ordenamiento

Los algoritmos de ordenamiento se utilizan para ordenar datos en una colección. Ordenar es una tarea muy común en la ciencia de la computación y también es una pregunta muy frecuente en entrevistas. Hay muchas formas diferentes de ordenar datos, y diferentes algoritmos tienen ventajas y desventajas distintas.

Aprende acerca de los algoritmos de ordenamiento y conoce el mejor caso/peor caso, la complejidad promedio de cada uno. Además, aprende sobre la estabilidad de los algoritmos de ordenamiento.

Bubble Sort

Bubble sort es un algoritmo simple de ordenamiento que pasa repetidamente por la lista, compara elementos adyacentes e intercambia aquellos que están en el orden incorrecto. Este proceso de pasar por la lista se repite hasta que la lista esté ordenada.

Selection Sort

Selection sort es un algoritmo de ordenamiento que selecciona el elemento más pequeño no ordenado en la lista y lo intercambia con el índice 0, luego encuentra el siguiente más pequeño y lo coloca en el índice 1, y así sucesivamente.

Insertion Sort

Insertion sort es un algoritmo de ordenamiento simple que construye el arreglo final ordenado un elemento a la vez mediante comparaciones. Es mucho menos eficiente en listas grandes en comparación con algoritmos más avanzados como quicksort, heapsort o merge sort.

Heap Sort

Heap sort es un algoritmo de ordenamiento basado en comparaciones. Es similar a selection sort donde primero encontramos el elemento máximo y lo colocamos al final. Repetimos el mismo proceso para los elementos restantes.

Quick Sort

Quick Sort es un algoritmo de divide y vencerás. Selecciona un elemento como pivote y particiona el arreglo dado alrededor del pivote seleccionado. Hay muchas versiones diferentes de QuickSort que eligen el pivote de diferentes maneras.

Merge Sort

Merge sort es un algoritmo de divide y vencerás. Divide el arreglo de entrada en dos mitades, se llama a sí mismo para las dos mitades y luego fusiona las dos mitades ordenadas. La función merge() se utiliza para fusionar las dos mitades. La función merge(arr, l, m, r) es un proceso clave que asume que arr[l..m] y arr[m+1..r] están ordenados y fusiona los dos subarreglos ordenados en uno solo.