2. Es un sencillo algoritmo de ordenación que basa la final matriz ordenada
(o lista) un elemento a la vez. Es mucho menos eficiente en grandes listas
que los algoritmos más avanzados como quicksort , heapsort.
ALGORITMOINSERTIONSORT
5. * Más eficiente en la práctica que la mayoría de otros procesos que son
cuadráticos..
* Adaptativa , es decir, eficaz para conjuntos de datos que ya están
ordenados sustancialmente.
6. * Estable ; es decir, no cambia el orden relativo de los elementos con
claves iguales..
* En el lugar ; es decir, sólo requiere una cantidad constante de espacio
de memoria adicional.
7. CODIGOFUENTE
Ordenación por inserción
cout <<"n_________en_Lista__________n"<< "nEdad:"<< lista->numero<<"n_______________________
lista = lista->next;
cout <<"nEdad:"<< lista->numero<<"n___________________________" << endl;
}
}
nodo *insertion_sort(nodo *lista){
if(!lista || !lista->next)
return lista;
/* Construye la matriz ordenada de la lista vacía */
nodo *ordenado = NULL;
/*Tomar las partidas fuera de la lista de entrada de uno en uno hasta que esté vacía */
while (lista != NULL)
{
/*Recuerda el inicio*/
nodo *head = lista;
/* Puntero de busqueda*/
nodo **search = &ordenado;
lista = lista->next;
/* coloca en su lugar todo dentro de la lista*/
while (!(*search == NULL || head->numero < (*search)->numero)) /* este es el inicio? */
{
/* continuar con la lista */
search = &(*search)->next;
}
head->next = *search;
*search = head;
}
return ordenado;
}
</endl;></ctime></string></iostream>