ペアリング操作のbig-O表記に頭を巻くのに苦労しています。質問は非常に単純です-配列内の特定の数値リストに対して可能なすべてのペアを生成します。
私の最初の推測は、ネストされたfor / foreachループを作成し、ペアを生成することです。これは非常に簡単で、nごとに、他のn個の数値を分析すると、n^2の複雑さが得られます。
ここで、これをさらに最適化して、(1,4)が(4,1)と同じであると言うと、1,2,3,4,5のようなソートされた配列の場合です。この方法では、ネストされたforループでのみペアリング操作を実行します
for (i =0; i < count; i++) {
for (j = i + 1; j < count - 1; j++)
}
}
この場合、配列を<n^2回実行するだけです。7つの数値のサンプルサイズの場合、ループを21回実行して、ペアを生成しました。これはlog-n演算にはなり得ないことを知っており、この演算はn ^ 2に収束すると言いたくなりますが、数学や理論のクラスからこれに明確に答えるのに十分な記憶がありません。この問題を解決するにはどうすればよいですか?
コンテキスト:同様の質問でインタビューを行いました。これは、リストからのペアリング操作がn ^ 2よりも優れている場合、友人との議論から生まれました。