2011年11月10日
ソートについて
まずはソートの項からやってます。
と言っても初めにけっこう長い説明があって、
それを理解するだけで時間かかってます(^^;)
ソートは英語の sort だと思うけど、
分類するとか並べ替えるといった意味です。
プログラミングでのソートは、
似てるものの集合を順番に並べること、
ってのが定義になるのかな……?
並べ替えの規則にはアルファベット順みたいにシンプルなのもあれば、
住所を都道府県・市町村の順のように複雑なものもあります。
ここでポイントとなるキーワードは「比較」。
順番の規則に基づいて2つの要素を比べることが絶対必要となり、
それによって順番どおりになってるか、
入れ替える必要があるかも分かることになります。
次のポイントが、ソートには3つのアルゴリズムがあること。
<交換><挿入><選択>です。
<交換>は名前のとおり、2つの要素を比べて、
必要なときは入れ替えて、順番どおりになるまで続きます。
<挿入>は要素が取り除かれて、新しいリストに1つずつ挿入されます。
新しいリストに移動して、入るべき場所に入れられる、と言い換えられるのかな。
<選択>は初めのリストの中で最小の値を選んで、
新しいリストを組み立てていきます。
<挿入>は新しい方のリストを走査して、
<選択>は古いリストを走査する、
ってことみたいだけど、この2つはちょっとややこしいです(^^;)
3つ目のポイントは、ソートとどんなデータを扱うかを
切り離して考えるのは不可能で、
うまく働くものもあれば、遅いものもあります。
要素数が多いと効率が悪いソート法、
小さいデータの集合には適さないソート法などなど……。
要は、内容に合わせてやり方を選べ!ってことですよね?
何かうまくまとまってないけど、
とりあえず理解できたのはこんなとこです……。


無理の無い程度にがんばってください。
中途半端な感じのままで申し訳ないですm(__)m
実は他の言語の勉強を始めることもずっと考えていて、
Perl を少しずつ始めています。
メジャーな言語の基礎を一通りやってから、もっと深く学ぶって順番もありかなぁと思いまして……。
Perl でも躓きまくってます。
良かったらブログに遊びにきてください♪
http://perl-programming.blog.so-net.ne.jp/