比較関数

http://d.hatena.ne.jp/odz/20070212/1171345311
これに気づかないのはけっこう危険ですね。

int cmp(const int *a, const int *b)
{
    return *a - *b;
}

たとえば INT_MIN - INT_MIN はオーバーフローにより 0 でない値をとる。
Nearly All Binary Searches and Mergesorts are Broken も同様。

証明されたプログラムにもバグは残る。
証明された性質を成立させるための仮定が成り立たないことに気づかない場合。