- 「6-3 単純選択ソート」から。
- 離れた場所の要素を交換すると安定性が崩れるようだ。
- 「6-4 単純挿入ソート」。シャトルソート! なんだかかっこいいかんじ。
- 単純ってstraightの訳なのね。
- そういやトランプって最近やってないなぁ。こんどやってみよう。
- これはデータ構造として、配列ではなくて線形リストとかに向いたアルゴリズムじゃないかなぁ。
- 演習6-7のbinary insertion sortの実装にやたら時間がかかる。再帰を使えばすぐにかけるのです。せっかくCなので、再帰を使わないで、配列と繰返しでやろうとすると、途端に、値の振舞と添字の振舞がいろんなケースでどうなるのか、ということが追えなくなるのです。やっぱり、数学に弱い、とくに離散数学に弱いのが原因だと思う。
さて、ここで開きなおります。C上で直接アルゴリズムを考えるのではなく、離散数学の問題の解答として再帰的表現をなるべく使わないものを立案してから、それをCで実装することにする。 - ふむ。そのようにやったら、デバッグなしで一発で正しく書けた。しかしながら、その結果としてのCによる実装のあり様はある意味きたないというか、それが正しく動くものかどうか、ぱっと見で判断できないようなものだ。これは何を意味しているのか。
CLとかSchemeのときは、再帰とか高階関数とかマクロとかをつかいながら、アルゴリズムを考える過程としてそれを書き進めることができるが、Cではそうやってはいけないまたはできないということかもしれない。アルゴリズムを考えてから、それのCによる実装を考えるという二段階を踏むべきということか。単なる慣れの問題かなぁ。
こつ、こつ。
0 件のコメント:
コメントを投稿