ビッグ・オー記法(Big-O notation:ランダウの記法)は問題のサイズが大きくなるにつれて、
アルゴリズムがどのように追従するかというスケーリングの比率を記述するものだ。これは
アルゴリズムの時間複数性(time complexity)とも呼ばれる。このビッグ・オーを使って、
ある演算を各種のコレクションに対して行う場合のスケーリングを比転できる。例えば
ビック・オーO(1)の演算は、コレクションに含まれる要素の数がいくつあっても、その演算には常に
同じ時間がかけるという意味だ。一方、ビッグ・オーがO(n)ならば、その時間複雑性が、
要素数に比例するという意味である。
以下の表に、最も一般的な時間複雑性を、
ビッグ・オー記法はアルゴリズムのスケーリングを示すが、問題がある程度のサイズなら、
時間複雑性の高いアルゴリズムが、逆に良好な結果を示すこともある。例えばクイックソート
は平均の時間複雑性がO(n log n)で、挿入ソートの時間複雑性はO(n²)である。けれども
問題のサイズが小さいければ(例えば n < 20程度なら)、挿入ソートのほうが(再帰を使わないので)
実行時間が短くなる。実行時間が短くなる。したがってアルゴリズムは、特定のユースケースでの実際の実行
性能を考慮することも重要だ。