Descripción de las estructuras desarrolladas - Jonathana1106/MPointers GitHub Wiki
Listas enlazadas: es una estructura de datos en la que cada elemento apunta al siguiente y/o al anterior (dependiendo si es enlazada simple o doble), de este modo, teniendo la referencia del principio de la lista podemos acceder a todos los elementos de esta. En la lista de doblemente enlazada, cada nodo tiene un enlace a su nodo anterior y al nodo siguiente. Entonces, podemos avanzar usando el siguiente campo y podemos regresar usando el campo anterior. Cada nodo en una lista de doble enlace contiene tres campos y se muestran en la siguiente figura.
QuickSort: Es un algoritmo de ordenamiento en el que se emplea el método divide y vencerás. Consiste en elegir un elemento de la lista de elementos a ordenar, al que llamaremos pivote. Resituar los demás elementos de la lista a cada lado del pivote, de manera que a un lado queden todos los menores que él, y al otro los mayores. Los elementos iguales al pivote pueden ser colocados tanto a su derecha como a su izquierda, dependiendo de la implementación deseada. En este momento, el pivote ocupa exactamente el lugar que le corresponderá en la lista ordenada. La lista queda separada en dos sublistas, una formada por los elementos a la izquierda del pivote, y otra por los elementos a su derecha. Este proceso se repite de forma recursiva para cada sublista mientras éstas contengan más de un elemento. Una vez terminado este proceso todos los elementos estarán ordenados.
BubbleSort: es un sencillo algoritmo de ordenamiento. Funciona revisando cada elemento de la lista que va a ser ordenada con el siguiente, intercambiandolos de posición si están en el orden equivocado. Es necesario revisar varias veces toda la lista hasta que no se necesiten más intercambios, lo cual significa que la lista está ordenada.
InsertionSort: El algoritmo de ordenación de inserción organiza una lista de elementos en un orden particular. En el algoritmo de ordenación por inserción, cada iteración mueve un elemento de la parte no ordenada a la porción ordenada hasta que todos los elementos se clasifiquen en la lista. El algoritmo de ordenación por inserción se realiza mediante la siguiente lógica. Asume que el primer elemento de la lista está en una porción ordenada de la lista y que todos los elementos restantes están en una porción no ordenada. Luego considera el primer elemento de la lista desordenada e inserte ese elemento en la lista ordenada en el orden especificado. Repite el proceso anterior hasta que todos los elementos de la lista desordenada se muevan a la lista ordenada.