Búscalo aquí:

Algoritmos de Ordenación en Prolog [código]

Los algoritmos de ordenación son utilizados en gran cantidad de aplicaciones de todo tipo, y la eficiencia en el desarrollo de su trabajo (ordenación) y uso adecuado de memoria es el factor que hace que algunos sean más utilizados que otros. En este post se presenta la implementación de algunos algoritmos como ordenación por el método de mezcla (merge sort), método de selección y método de inserción en Prolog.



El código fuente del algoritmo de ordenación por selección en Prolog es el siguiente:

  1. %Author: Jorge Valverde Rebaza
  2. %algoritmo de ordenacion por Seleccion
  3. ordSeleccion(L1,L2):-seleccion(L1,[],L2).
  4. seleccion([],L2,L2).
  5. seleccion(L1,L2,L3):-menorlista(L1,M),
  6. eliminar(M,L1,Laux),
  7. setCabeza(M,Laux,[H|T]),
  8. append(L2,H,Laux2),
  9. seleccion(T,Laux2,L3).
  10. %ponemos un elemento como cabeza de la lista
  11. setCabeza(H,L,[H|L]).
  12. %eliminamos un elemento X de la lista
  13. eliminar(_,[],[]):-fail.
  14. eliminar(X,[X|R],R).
  15. eliminar(X,[C|R],[C|R1]):- eliminar(X,R,R1).

-->El código fuente del algoritmo de ordenación merge sort en Prolog (método de mezcla) es el siguiente:

  1. %author: Jorge Valvede Rebaza
  2. %algoritmo de ordenación merge sort (mezcla)
  3. ordMezcla([X],[X]):-!.
  4. ordMezcla([],[]).
  5. ordMezcla(L1,L2):-partir(L1,A,B),
  6. ordMezcla(A,R1),
  7. ordMezcla(B,R2),
  8. mezclar(R1,R2,L2).
  9. %partimos la lista pasando un elemento de
  10. %manera intercalada a una u otra lista
  11. partir([],[],[]).
  12. partir([X],[X],[]).
  13. partir([X,Y|Z1],[X|Z2],[Y|Z3]):-partir(Z1,Z2,Z3).
  14. mezclar(L,[],L).
  15. mezclar([],L,L).
  16. mezclar([X|Z1],[Y|Z2],[X|Z3]):- X
  17. mezclar(Z1,[Y|Z2],Z3).
  18. mezclar([X|Z1],[Y|Z2],[Y|Z3]):- X>=Y,
  19. mezclar([X|Z1],Z2,Z3).

-->El código fuente del algoritmo de ordenación por inserción en Prolog es el siguiente:
  1. %author: Jorge Valvede Rebaza
  2. %ordenacion por el método de insercion
  3. ordInsercion([],[]).
  4. ordInsercion([H|T],L):-ordInsercion(T,L1),
  5. insertar(H,L1,L).
  6. insertar(N,[],[N]).
  7. insertar(N,[H|T],[N,H|T]):- N
  8. insertar(N,[H|T],[H|S]):- insertar(N,T,S).

-->En los algoritmos presentados se hace uso de algunos métodos propios de una estructura Lista en Prolog, la cual se presenta en el post: Uso de Listas en Prolog [código].

Espero les sirva, saludos.



Quieres leer más post como éste???...suscribete aquí!!!



No hay comentarios.:

Publicar un comentario

Bienvenido a jcGeorge's Blog!!!

Por favor deja tu comentario, consulta o sugerencia, procura mantener habilitado tu perfil de Blogger o deja un enlace a tu blog o web.

Gracias por leer este blog!!!

Related Posts Plugin for WordPress, Blogger...