⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sort.pro

📁 Prolog开发的简单的几个人工智能方面的程序.含问题分析报告.
💻 PRO
字号:
domains
  ilist=integer*
predicates
  sort(ilist,ilist)
  split(ilist,ilist,ilist)
  split_on(integer,ilist,ilist,ilist)
  merge(ilist,ilist,ilist)
  length(integer,ilist)
clauses 
  sort([],[]):-!.
  sort([X],[X]):-!.
  sort([X1,X2|Y],Y):-
     split([X1,X2|_],Y1,Y2),
     sort(Y1,Z1),
     sort(Y2,Z2),!,
     merge(Z1,Z2,Y).
     
  merge([],X,X).
  merge(X,[],X).
  merge([B1|Y1],[B1|Y2],[B1,B1|Y]):-
     merge(Y1,Y2,Y).
  merge([B1|Y1],[B2|Y2],[B1|Y]):-
     B1<B2,
     merge(Y1,[B2|Y2],Y).
  merge([B1|Y1],[B2|Y2],[B2|Y]):-
     B2<B1,
     merge([B1|Y1],Y2,Y).      
     
  split(X,X1,X2):-
     length(N,X),    
     M=N/2,     
     split_on(M,X,X1,X2).
 split_on(0,X,[],X).
 split_on(Y,[X1|Z],[X1|Z1],Z2):-
     split_on(Y1,Z,Z1,Z2),
     Y=Y1+1.
 length(0,[]).
 length(M,[_|X]):-
    length(N,X),
    M=N+1.    
 
            
        
           

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -