このディレクトリの索引

# 出典 :: C/C++の宿題片付けます 132代目 #709 # [1] 授業単元:C言語とアルゴリズム # [2] 問題文(含コード&リンク): http://ime.nu/kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10227.txt 配列aのデータを基本選択法によって昇順に整列し、整列後の配列a内容を表示 :- a(L),基本選択法(L,L2),write_formatted('%t\n',[L2]). 基本選択法([A,B|R],L) :- A =< B, 最初に見つかったAより小さい数と交換(A,[B|R],X,L2), 基本選択法の二(A,X,L2,L). 基本選択法([A,B|R],L) :- A > B, 基本選択法([B,A|R],L). 基本選択法の二(A,B,L1,[A|L2]) :- A =< B, 基本選択法([B|L1],L2). 基本選択法の二(A,B,L1,L) :- A > B, 基本選択法([B|L1],L). 最初に見つかったAより小さい数と交換(A,[],A,[]) :- !. 最初に見つかったAより小さい数と交換(A,[B|R],B,[A|R]) :- B > A,!. 最初に見つかったAより小さい数と交換(A,[B|R1],X,[B|R2]) :- A =< B, 最初に見つかったAより小さい数と交換(A,R1,X,R2). 配列aのデータを基本選択法によって降順に整列し、整列後の配列a内容を表示 :- a(L), 基本選択法降順(L,L2),write_formatted('%t\n',[L2]). 基本選択法降順([A,B|R],L) :- A >= B, 最初に見つかったAより大きい数と交換(A,[B|R],X,L2), 基本選択法降順の二(A,X,L2,L). 基本選択法降順([A,B|R],L) :- A < B, 基本選択法降順([B,A|R],L). 基本選択法降順の二(A,B,L1,[A|L2]) :- A >= B, 基本選択法降順([B|L1],L2). 基本選択法降順の二(A,B,L1,L) :- A < B, 基本選択法降順([B|L1],L). 最初に見つかったAより大きい数と交換(A,[],A,[]) :- !. 最初に見つかったAより大きい数と交換(A,[B|R],B,[A|R]) :- B < A,!. 最初に見つかったAより大きい数と交換(A,[B|R1],X,[B|R2]) :- A =< B, 最初に見つかったAより大きい数と交換(A,R1,X,R2).