Algoritmo de ordenamiento para listas enlazadas [C]

Iniciado por Rhessus, 18 Julio 2016, 03:09 AM

0 Miembros y 2 Visitantes están viendo este tema.

Rhessus

Hola a todos.
Continuando con la agenda en C, ahora estoy buscando la forma de ordenar alfabéticamente los contactos (utilizando únicamente las librerías stdio.h, stdlib.h y string.h). Investigué sobre el tema, y reconozco que aprendí algoritmos básicos de ordenamiento que desconocía: ordenamiento burbuja, de inserción, etc. Al parecer, el que resulta más conveniente para listas enlazadas es el de ordenamiento por mezcla. Sin embargo, vuelvo a chocarme contra la pared: por más que intento, no encuentro la forma de "convertirlo" al caso (todos los ejemplos que encuentro son con elementos de una lista, y no con listas enlazadas; en otros casos, son códigos de otro lenguaje).
¿Alguien podría guiarme?
Muchas gracias por su tiempo. Saludos.

AlbertoBSD

#1
Hola un tema similar lo discutimos aqui

https://foro.elhacker.net/programacion_cc/ordenar_lista_simplemente_enlazada_en_lenguaje_c-t454743.0.html

Y adicionalmente realice un video al respecto usando burbuja

[youtube=640,360]https://www.youtube.com/watch?v=cKu-_W5UBpg[/youtube]

Y para adaptar el if solo cambias por strcmp y te devuelve -1 si es menor y +1 si es mayor

Saludos
Donaciones
1Coffee1jV4gB5gaXfHgSHDz9xx9QSECVW

Rhessus


AlbertoBSD

Aclarando que no es el mejor algoritmo de ordenamiento.

Seria bueno que trataras de implentar otro como quicksort o alguno de los que mencionas.

Saludos
Donaciones
1Coffee1jV4gB5gaXfHgSHDz9xx9QSECVW

Rhessus

Sí, leí eso en varios sitios. A partir de tu ejemplo del ordenamiento de burbuja voy a intentar con otros algoritmos.
Gracias!

Rhessus

Por cierto: excelente video  ;-)
Voy a visitar tu canal más seguido.