このディレクトリの索引
#  
#  バブルソート
#  

バブルソート(L1,L2) :-
        軽い泡はちょっと浮き上がる(L1,L3),
        泡が浮き上がったら最初からやり直す(L3,L2),!.
バブルソート(L,L) :-
        浮き上がる泡がなくなったらバブルソート終了.

軽い泡はちょっと浮き上がる(L1,L3) :-
        append(L0,[_重い泡,_軽い泡|R],L1),
        _重い泡 @> _軽い泡,
        append(L0,[_軽い泡,_重い泡|R],L3).

泡が浮き上がったら最初からやり直す(L3,L2) :-
        バブルソート(L3,L2).

浮き上がる泡がなくなったらバブルソート終了.