配列内の任意の2つの数値の合計のすべての組み合わせを調べる必要があります。等しい場合は印刷します。 この問題に対する線形解法は、O(N^2)の複雑さを有する。 ソートしてからバイナリ比較をすることを考えました。複雑さはまだ(NlogN + N)並べ替えられていない配列の値を見つける
私はそれのすべての組み合わせを見つける必要があります。
この問題の線形解法 例:
//Linear search, find all the combinations
Find(int a[], int Target)
{
for(i=0; i<arr_size; i++)
for(j=0; j<arr_size; j++)
if((a[i]+a[j]) == Target)
cout<<a[i]<<a[j]
}
さらに複雑さを減らす方法はありますか?
おかげで、あなたが最初にすべての不可能をフィルタリングすることができ 達人
を改善し、 "複雑さはまだ(NlogN + N)である" - O(NlogN)の複雑さの何が問題なの? –
線形解は 'if(i!= j &&(a [i] + a [j])== Target''を持つべきです。ソートそのものが複雑になるのであれば、ソートの仕方がはっきりしません。 – nnnnnn