2017-10-31 5 views
-3

私は配列Aと別の配列Bを持っています。どのようにしてAからBの要素を削除し、アルゴリズムの実行時間は?許可された重複。別の配列アルゴリズムから1つの配列要素を削除します

ありがとうございます!

+1

削除方法は実装依存です。あなたは実装のための言語を指定していません。アルゴリズムレベルでは、単に「B-A」の集合に過ぎない。実行時間は、ハードウェア、言語、配列の実装、実行しているハードウェア、配列のサイズによって決まります... – Prune

+0

どのアルゴリズムを使用しますか?これまでに何を試しましたか? – ilim

答えて

0

1つのアレイは最悪の場合の実行時間がO(N)で、2つのアレイの実行時間は通常O(N^2)です。システムイベントまたはユーザー入力を使用して要素を削除することができます。文字列配列の場合、削除する要素を選択してそれらのインデックスに空の文字列を割り当てるか、システムイベントを使用して必要な要素を削除することができます。

0

実行時間は、実装によって異なります。

ソートA、実行時間はO((A + B)log A)にすることができます。

Aの値とBをハッシュすることができる場合は、それらの相対的な順序を維持する配列要素を気にしない場合、実行時間はO(A + B)

かもしれない、項目を削除することOであります(1)。削除したいアイテムを最後のアイテムと交換し、サイズを減らしてください。

+0

同じ複雑さで要素の順序を維持することができます。重複を見落として(カウントして)、i番目の位置から良い要素を 'A [i-dupcount]'に移動できます – MBo

関連する問題