Toggle navigation
?
users online
Logout
Open hangout
Open chat for current file
% Ordenación por generación y prueba % ================================== ordenación(L,L1) :- permutation(L,L1), ordenada(L1). ordenada([]). ordenada([_]). ordenada([X,Y|L]) :- X @=< Y, ordenada([Y|L]). % Ordenación por selección % ======================== ordenación_por_selección(L1,[X|L2]) :- selecciona_menor(X,L1,L3), ordenación_por_selección(L3,L2). ordenación_por_selección([],[]). selecciona_menor(X,L1,L2) :- select(X,L1,L2), not((member(Y,L2), Y @< X)). % Ordenación rápida % ================= ordenación_rápida([],[]). ordenación_rápida([X|R],Ordenada) :- divide(X,R,Menores,Mayores), ordenación_rápida(Menores,Menores_ord), ordenación_rápida(Mayores,Mayores_ord), append(Menores_ord,[X|Mayores_ord],Ordenada). divide(_,[],[],[]). divide(X,[Y|R],[Y|Menores],Mayores) :- Y @< X, !, divide(X,R,Menores,Mayores). divide(X,[Y|R],Menores,[Y|Mayores]) :- % Y @>= X, divide(X,R,Menores,Mayores).