에 퀵의 추적을 실행하기위한 다이어그램을 그리는 방법 :나는 프롤로그에서 퀵위한 코드가 어떻게 프롤로그
gt(X,Y):- X @> Y.
conc([], List, List).
conc([Head|Tail], List1, [Head|List2]):- conc(Tail, List1, List2).
quicksort([], []).
quicksort([X|Tail], Sorted):-
split(X,Tail,Small,Big),
quicksort(Small,SortedSmall),
quicksort(Big, SortedBig),
conc(SortedSmall, [X|SortedBig], Sorted).
split(X,[],[],[]).
split(X,[Y|Tail],[Y|Small],Big):-
gt(X,Y),!,
split(X,Tail,Small, Big).
split(X,[Y|Tail],Small,[Y|Big]):-
split(X,Tail,Small,Big).
예는 quicksort([3,2,4,1,5], Sorted)
이다. 나는 이것을 거의 그렸다. 그러나 나는 Small=[2, 1]
의 목록에 대한 추적을 찾는다. 그리고 나는 Big
의 목록을 위해 똑같이한다. 누군가이 코드에 대한 다이어그램을 그리는 데 도움을 줄 수 있습니까? 실행중인 프로그램을 추적하는 것을 이해하고 싶습니다. 정말 고맙겠습니다!