このディレクトリの索引
#  出題場所 :: http://toro.2ch.net/test/read.cgi/tech/1381909900/935
#  [1] 授業単元: C言語 
#  [2] 問題文(含コード&リンク):レポート形式なのですが比較回数を数えるプログラムのソースコードを御教示ください。 
#   問:以下の挿入ソートのプログラムを参考に(次番に記載)着目する各x[i]の大小比較の回数を求めよ。 
#     参考として、各データの比較回数は最大(i-1)回、最小1回、平均(i/2)回となる。 
#     また、それぞれのデータの並びを変えて比較回数とデータの並びの関係を考えよ。 
#  

挿入整列時の比較回数(L1,L2,_比較回数) :-
        挿入整列時の比較回数(L1,[],0,L2,_比較回数).

挿入整列時の比較回数([],L2,_比較回数,L2,_比較回数).
挿入整列時の比較回数([A|R],L1,_比較回数_1,L2,_比較回数):-
        比較回数を計測しながらの挿入(A,L1,_比較回数_1,L3,_比較回数_2),
        挿入整列時の比較回数(R,L3,_比較回数_2,L2,_比較回数).

比較回数を計測しながらの挿入(A,[],_比較回数,[A],_比較回数).
比較回数を計測しながらの挿入(A,[B|R],_比較回数_1,[A,B|R],_比較回数_2) :-
        A @=< B,
        _比較回数_2 is _比較回数_1 + 1,!.
比較回数を計測しながらの挿入(A,[B|R1],_比較回数_1,[B|R2],_比較回数) :-
        _比較回数_2 is _比較回数_1 + 1,
        比較回数を計測しながらの挿入(A,R1,_比較回数_2,R2,_比較回数).