説明 |
リストの中身を昇順に並べ替えます |
使用例 |
| ?-qsort([4,1,7,8,2],L). |
プログラム |
/* quick sort */ :- public qsort/2. qsort(L,R):-qsort(L,[],R). :- mode qsort(+,+,-). qsort([],L,L). qsort([A|L],R,ANS):- partition(L,A,L1,L2), qsort(L1,[A|X],ANS), qsort(L2,R,X). :- mode partition(+,+,-,-). partition([],_,[],[]). partition([X|L],A,[X|L1],L2):- X=‹A, !, partition(L,A,L1,L2). partition([X|L],A,L1,[X|L2]):- partition(L,A,L1,L2). |