نمايش پست تنها
قديمي ۰۳-۱۸-۱۳۹۰, ۰۵:۱۵ بعد از ظهر   #1 (لینک دائم)
majidmir57 Male
عضو جدید
 
آواتار majidmir57
 
تاريخ عضويت: خرداد ۱۳۹۰
پست ها: 1
تشكرها: 0
0 تشكر در 0 پست
Question کامپایل Quick Sort با پرولوگ ؟

سلام
من چند تا سورس مرتب سازی quick sort به زبان پرولوگ دارم ، از دوستان اگه کسی می تونه و prolog رو سیستمش نصبه خواهش مکنم کامپایل کنه و نسخه exe اونو اینجا قرار بده .
كد:
Domains
    list = integer*.

Predicates
    quicksort(list,list).
    split(integer,list,list,list).
    concatenate(list,list,list).
    printlist(list).
    
Clauses
    quicksort([],[]).
    quicksort([Head|Tail],SortedList) :-
        split(Head,Tail,SList,BList),
        quicksort(SList,SList1),
        quicksort(BList,BList1),
        concatenate(SList1,[Head|Blist1],SortedList),
        printlist(SortedList).
    
    split(_,[],[],[]).
    split(Item,[Head1|Tail1],[Head1|SList],BList) :-
        Item > Head1 , ! ,
        split(Item,Tail1,SList,BList).
    split(Item,[Head1|Tail1],SList,[Head1|BList]) :-
        split(Item,Tail1,SList,BList).
    
    concatenate([],List,List).
    concatenate([Item|List1],List2,[Item|List3]) :-
        concatenate(List1,List2,List3).
    
    printlist([]) :- nl.
    printlist([Head|Tail]) :-
        write(Head," "),
        printlist(Tail).

Output

Goal: quicksort([2,4,1,3,5,9,6],L).
یا این یکی
نقل قول:
% Quicksort in Prolog
gtq(X,Y) :- X @> Y.

quicksort( [],[] ).

quicksort( [X | Tail], Sorted) :-
split( X, Tail, Small, Big),
quicksort( Small, SortedSmall),
quicksort( Big, SortedBig),
conc( SortedSmall, [X | SortedBig], Sorted).

split( _, [], [], []).

split( X,[Y | Tail], [Y | Small], Big) :-
gtq( X, Y),!,
split( X, Tail, Small, Big).

split( X, [Y | Tail], Small, [Y | Big] ) :-
split( X, Tail, Small, Big).

conc([],L,L).

conc( [X | L1], L2, [X | L3]) :-
conc( L1, L2, L3).
majidmir57 آفلاين است   پاسخ با نقل قول

  #ADS
نشان دهنده تبلیغات
تبليغگر
 
 
 
تاريخ عضويت: -
محل سكونت: -
سن: 2010
پست ها: -
 

نشان دهنده تبلیغات is online