さて、私はここで複雑さにとらわれ続けています。要素の配列があります、例えばA[n]
。すべてのペアを見つける必要があるのでA[i]>A[j]
、またi < j
。
したがって、の場合{10, 8, 6, 7, 11}
、ペアは次のようになります。(10,8) (10, 6), (10,7) and so on...
nlogn時間でマージソートを実行してから、nlognで配列全体を再度バイナリ検索して、ソートされた配列内の要素のインデックスを取得しました。
だからsortedArray={6 7 8 10 11}
そしてindex={3 2 0 1 4}
私が何をしようとしても、n^2
比較するためにループを開始するとき、私は複雑さの中で別の時間を取得し続けます。つまり、最初の要素、つまり10から始めると、それはindex[2]
それより2つ少ない要素があることを意味します。したがって、その場合index[2]<index[i]
は受け入れることができますが、それによって複雑さが増します。何かご意見は?コードは必要ありません。正しい方向へのヒントが役立つでしょう。
ありがとう。私がCで行ってきたすべてのことと、時間計算量はここで重要ですc