Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- sortowanie([],[]). %pusta lista jest posortowana
- sortowanie([X],[X]). %jeden element jest posortowany
- sortowanie(Lista,Posortowana):-Lista=[X|Y],Z=0,
- maxlista([X|Y],Maxliczba),
- policz(Lista,Z,Q),
- dodajdoposortowanej(Z,Q,[],Posortowana),
- zwieksz(Maxliczba,Z,Posortowana,Lista).
- maxlista( [], 0).
- maxlista( [X], X).
- maxlista( [H | L], Max) :-
- maxlista( L, N),
- ((Max is H, H > N);
- (Max is N, N > H)).
- policz([],X,0).
- policz([X|T],X,Y):- policz(T,X,Z), Y is 1+Z.
- policz([_|T],X,Z):- policz(T,X,Z).
- dodajdoposortowanej(L,Q,Lista,[L|Lista2]):- Q>1, NewQ is Q-1, dodajdoposortowanej(L,NewQ,Lista,Lista2).
- dodajdoposortowanej(L,Q,Lista,[L|Lista]):- Q=1.
- dodajdoposortowanej(L,Q,Lista,Lista):- Q=0.
- zwieksz(Maxliczba,X,Posortowana,Lista):- Maxliczba>X, NewX is X+1, policz(Lista,NewX,Q), dodajdoposortowanej(NewX,Q,Posortowana,Lista2),zwieksz(Maxliczba,NewX,Lista2).
- zwieksz(Maxliczba,X,Posortowana,Lista):- Maxliczba=X.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement