【おーだーきほう(びっぐおー)】
オーダー記法(ビッグオー) とは?
💡 「データが増えたら何倍遅くなるか」を一言で表す記法
📌 このページのポイント
O(n)とかO(log n)って何を表しているの?
データの個数がnのとき、処理にどのくらいのステップがかかるかを表しているよ。O(n)はデータが2倍になれば処理も2倍かかる。O(log n)はデータが2倍になっても処理はたった1ステップ増えるだけの超効率的な処理。O(n²)はデータが2倍になれば処理は4倍かかる。
係数は無視していいの?なんで?
ビッグオーは「データが大量になったとき全体の傾向」を見るためのものだから。「2n」と「3n」はどちらもO(n)で、データが100万件になれば「2倍か3倍か」より「n倍かn²倍か」の違いの方がはるかに重要になる。大きな絵を見るための記法だよ。
実際の開発でビッグオーを気にする場面はある?
O(n log n)ってよく見るけど、どんなアルゴリズムで出てくるの?
まとめ:ざっくりこれだけ覚えればOK!
「ビッグオー」って出てきたら「データが増えたら処理速度がどう変化するかを表す記号」と思えばだいたいOK!
📖 おまけ:英語の意味
「Big O Notation」 = 大きいオーの記法
💬 数学の「O記法(ランダウ記号)」が由来。19世紀のドイツの数学者エドムント・ランダウが考案した。「Order(程度・規模)」のOとも解釈されるよ