空の配列が与えられた場合、2種類のクエリを実行する必要があります
配列に要素を挿入する
いくつかの要素kのインデックスを見つける(明らかに配列はソートされたままでなければなりません)
これは、set
コンテナを使用して行うことができます
set<int> st;
set.insert(t);
これにより、私の要素がに挿入されO(log(n))
ます。
そして2番目のクエリの場合
set<int>::iterator it;
it = st.find(k);
idx = distance(st.begin(), it);
これにはO(n)
時間がかかります。(O(n)
[for distance()
[+ O(log(n)
[for set::find()
])。
O(log(n))
C ++の事前定義されたコンテナを使用して両方のクエリを実行する方法はありますか?