アルゴリズム

Python

Pythonで凸包を求める方法

凸包というものがあります。簡単に言うと、散らばった点の外側にある点の集まりです。
Python

Pythonでバイナリサーチ(二分探索)

Pythonでバイナリサーチを行うサンプルを作ってみました。
Python

Pythonでマージソート

マージソートをPythonで書いてみました。
JavaScript

JavaScriptで素数を列挙する

ある問題を解くために素数が必要になったので、JavaScriptで素数を列挙する方法を考えてみました。最も小さい素数は2で、次は3です。配列にセットします。そして5,7,9,11と奇数について順に素数であるか確認していきます。5が「5未満の...
JavaScript

クレジットカード番号をチェックする

クレジットカードの番号には規則があり合致しないとエラーになります。チェックの仕組みを「ルーンアルゴリズム」と言うそうです。この手のチェックの仕組みは数列からチェックデジットを計算して先頭か末尾に付けるというパターンが多いと思いますが、この仕...
Excel

VBAでクイックソート(改良版)

前にVBAでクイックソートをする方法を紹介しましたが、配列の扱いがよく分からず、CSVに変換して行う方法でした。今回、配列の処理方法が分かったので、コードを書き直してみました。処理が劇的に速くなりました。バブルソートなど他のソートとは比較に...
JavaScript

JavaScriptで「偏りランダム」を行う方法

プログラムでランダムに値を変えるという場面はよくあります。JavaScriptならば次のようにします。血液型("A", "O", "B", "AB")からランダムに一つ取り出すサンプルです。
JavaScript

JavaScriptで配列をシャッフルする

PHPには配列の要素をシャッフルする「shuffle」という関数がありますが、JavaScriptにはないので、メソッドを自作して使っています。シャッフルというのは要素をランダムにするのではなく、要素の組合せは変えずに順番をランダムにするこ...
JavaScript

JavaScriptで順列、組合せ

JavaScriptで配列と抜き取り数を与えると全ての順列、組合せを配列で返す関数です。
JavaScript

いろいろなソート(サンプル付き)

ソートのアルゴリズムについて調べました。代表的なソート方法5種類について概略をまとめます。n個の要素を持つ配列を昇順(小さい数から大きい数)にソートする場合です。