コンピュータの世界は日進月歩で、今日覚えたソフトの操作方法が明日には役に立たなくなってしまいします。ところが、変わらないものもあります。それが、アルゴリズムです。アルゴリズムとは、問題を解く手順のようなものです。現在のコンピュータの仕組み(ノイマン型コンピュータで、物事を順番に解いていく)が変わらない限り(並列型や量子コンピュータ)永遠です。あなたが先生で生徒の順位をつけたい場合、成績の良い順に生徒を並び替えなければなりません。ここでは、ソートのアルゴリズムを必要とします。このようにコンピュータを用いて何か問題を解こうとする際に、大きな役割を果たすのがアルゴリズムです。アルゴリズムの中で一番多く使われるのが、「ソート(整列)」と「検索」です。バブルソート、クイックソート、シェルソート、ヒープソートなどがあります。選択法と挿入法やバブルソートは、アルゴリズムは単純ですが、速度が個数(n)の2乗に比例して遅くなります。クイックソートやヒープソートは、アルゴリズムは複雑ですが、速度がn*log(n)に比例します。このように、問題のサイズによってソートの方法を選ぶ必要があります。「検索」にはソートほどバラエティにとんではいませんが、最初から順番に調べていく順次検索法と、あらかじめソートされたデータを調べる二分探索法(バイナリサーチ)が有名で、そのほかにハッシュ法(データ自体から検索の位置を作り出す方法)や二分木探索法(データを二分木に構成して探索する)などがあります。ここでは、これらのアルゴリズムの解説は市販の書籍や雑誌に任せて(大きな本屋に行けばいっぱいある)書籍にあまり載っていない方法を紹介します。コムソート数あるソートの中で最速と言われるのがクイックソートですが、それに迫る速度でしかもどんなデータの条件でも安定(クイックソートは最悪の場合がある)しています。速度は、n*log(n)に比例します。出典は、「日経バイト」の記事です。(gap=1);end;ラディックス(基数)ソートクイックソートが最速と言われていますが、このソートはさらに速く、速度は個数に比例します。データが整数である条件が付きます。次に、10進を基数とした2桁の整数での例を示します。]を用意して、1桁目の数字に該当する場所に入れる。同じ場所に入るときには、リンクでつなぐ。]を用意して、2桁目の数字に該当する場所に入れる。5526このアルゴリズムは、整数という制限やデータの個数と同程度の領域を必要とすることからあまり使われていません。1989.4」という小冊子に載っていましたが、詳しいことはわかりません。乱数を順次抽出する方法ある範囲の乱数の中からランダムに数値を取り出すとき、同じ数値を取り出さないように乱数を選ぶにはどうしたらよいのでしょうか。壺の中に1から100までの番号が付いた玉が入っていて、それをランダムに取り出して再び壺の中に戻さない場合を考えてみてください。1から100までの乱数を発生させて、それに基づいて玉を取り出していたのでは、同じ値の乱数が発生したときには無駄になってしまいます。それに、残りの玉が少なくなるにつれて、壺の中に残っている玉の番号に該当する乱数が発生する確率は低くなり、時間がかかりすぎてしまいます。アルゴリズムの考え方としては、一度発生した乱数はまだ発生していない他の乱数を示すようにして、同じ乱数が再び発生しても重複しないようにします。乱数が1個発生するたびに乱数の範囲を1だけ減らしていきます。1991.11」に発表したものです。配列に入っているデータのいくつかを削除した場合に、空になった配列を1パスで詰める方法です。