[[
✎ pl:prolog:pllib:merge_sort_2
]]
aiWiki
Pokaż stronę
Ostatnie zmiany
Indeks
Zaloguj
Ta strona jest tylko do odczytu. Możesz wyświetlić źródła tej strony ale nie możesz ich zmienić.
====== Merge sort 2 ====== {{tag> sorting algorithms recursion}} ===== Description ===== Program implements merge sort algorithm. **Source**: PrologTutorial (on-line tutorial) ===== Download ===== Program source code: {{merge_sort_2.pl}} ===== Listing ===== <code prolog> mergesort([],[]). /* covers special case */ mergesort([A],[A]). mergesort([A,B|R],S) :- split([A,B|R],L1,L2), mergesort(L1,S1), mergesort(L2,S2), mymerge(S1,S2,S). split([],[],[]). split([A],[A],[]). split([A,B|R],[A|Ra],[B|Rb]) :- split(R,Ra,Rb). mymerge(A,[],A). mymerge([],B,B). mymerge([A|Ra],[B|Rb],[A|M]) :- A =< B, mymerge(Ra,[B|Rb],M). mymerge([A|Ra],[B|Rb],[B|M]) :- A > B, mymerge([A|Ra],Rb,M). % ?- mergesort([4,3,6,5,9,1,7],S). % S=[1,3,4,5,6,7,9] </code> ===== Comments =====
pl/prolog/pllib/merge_sort_2.txt
· ostatnio zmienione: 2019/06/27 15:50 (edycja zewnętrzna)
Pokaż stronę
Poprzednie wersje
Menadżer multimediów
Do góry