Sortări

Cerință:

Fiind dată o listă de numere întregi, se cere să se aranjeze în ordine crescătoare elementele acesteia, folosind algoritmii de sortare: Bubble Sort și Quick Sort.

prolog_logo
Cod Sursa PROLOG

 

bubblesort(Lista, Sortat):- schimb(Lista,Lista1),!,
sort(Lista1,Sortat).
bubblesort(Sortat,Sortat).
schimb([X,Y|Rest],[Y,X|Rest]):-X>Y.
schimb([Z|Rest],[Z|Rest1]):-schimb(Rest,Rest1).

Interogări:

bubble sort

quicksort( [] , [] ).
quicksort( [ X|Tail], Sortat) :-
desp( X, Tail, Mic, Mare),
quicksort( Mic, Sortatmic),
quicksort( Mare, Sortatmare),
conc( Sortatmic, [X | Sortatmare], Sortat).
desp( X, [], [], [] ).
desp( X, [Y | Tail], [Y|Mic], Mare) :-
( X > Y), !,
desp( X, Tail, Mic, Mare).
desp( X, [ Y | Tail], Mic, [Y | Mare] ) :-
desp( X, Tail, Mic, Mare).
conc( [], L, L).
conc( [ X|L1 ], L2, [ X|L3 ] ) :-
conc( L1, L2, L3).

Interogări:

quick sort

Leave a comment