するあらゆる側面を含んでいますの違い二つのリストのデータ
-
02-07-2019 - |
質問
このための運動のCSっきの理論。
たとえば2つの容器です。フォルダ、Url、ファイルを文字列であることが発表されはどちらでも構いません。
何のためのアルゴリズムの計算の追加や取り外すのか?
通知:数である場合にはこれを解決する方法の問題では、ポスト毎に一つの答えで分析できるので、投票す。
編集:すべての回答を解決する問題4の器。使用できるのは2?
解決
を想定してリストのユニークなアイテムの発注な物のようなものと考えることができっさりすっきりとした味わいがしてくれなかったとしても、よりリスト
たくさんのベン図(venn diagram)、リストとして、一丸とリストとしてのその他の交差点のこれら二つの定数プールがあります。
すべての要素がこの交差点の両方からA、B、何も残って削除されながらも残して使用された東京オリンピックを追加しました。
なので、繰り返し処理を実行してみる各項目B場合で、本人からのモジュラーバルブ
その後のリストも削除されたため、Bはリストも追加された
思い---
[編集]Okできるように、"2コンテナ"を制限したり、同じもの:
foreach( A ) {
if( eleA NOT IN B ) {
DELETED
}
}
foreach( B ) {
if( eleB NOT IN A ) {
ADDED
}
}
そん進めることのリストを破壊古いもの---でもかくとして、前の例では、だけなのにループの短いリスト削除の要素からなります。ここだけの両方のリスト
Anさんが私の第一ソリューションのた4つの容器、それだけで破壊二;-)
他のヒント
していないことになると思うアルゴリズムがしんでみてはいかがでしょうか。
sort left-list and right-list
adds = {}
deletes = {}
get first right-item from right-list
get first left-item from left-list
while (either list has items)
if left-item < right-item or right-list is empty
add left-item to deletes
get new left-item from left-list
else if left-item > right-item or left-list is empty
add right-item to adds
get new right-item from right-list
else
get new right-item from right-list
get new left-item from left-list
について-キリストの関係を左リスト 削除 商品の除去 加 現在含まれる場合があります。
どのジョーさんは言った。る場合には、そのリストは大きすぎる場合のメモリ、外部ファイルを選別用又は合併並べ替えができます。
不足情報:どう定義する。E.g.場合のリスト(A-B)同じディレクトリサーバやサーバー Bにある。その待の10日間は、発生のリストを再度比べて、どのように伝えれば何かが削除された?私はできません。できるだけがファイルサーバーにはないサーバ億よび/またはそれが逆になっているのです。るかどうかでファイルが追加されているサーバー A(このファイルが見つからないか、またB)またはファイルが削除されたサーバー B(このファイルが見つからないか、またB もう はたしていきたいと思いませんの決定だけでリストのファイル名です。
ワークショップであることをまだしていただくことを前提としつリスト名やリストの名前です。また古いもののない新しいって削除されます。また新しいませんのでご注意ください古された追加などのコンテンツの同じディレクトリに同じサーバがリストが作成されていな。
さらにさせていただいておりますが重複している。その各項目のいずれかの一覧表は独自の感:ましたがってこの項目が他の項目のリスト(どんなことを比較し、いきいと言える項目のいずれか 小 または 大きな はっと比較しながらも、平等なものとする。E.g.処理時文字列に、それらを比較する辞書的には、同一の文字列は二度のリスト。
その場合は最も簡単な(必ずしも最大のものは次のとおりである
ソートの一覧表も掲載しています。E.g.場合のリストから文字列のソートしてアルファベット順とする。選別が必要という意味で使用できるバイナリ検索をオブジェクトのリストを想定し、ドが存在するが(または迅速に判定できない存在のリストがあります。場合のリストは紙のオブジェクトは、複雑さのO(n)(Iる上で重要な要素である項目のリストに場合のリストはソートされ、複雑化はO(log n)で、毎試合わせ項目のリストでは常に除外50%のリストになります。場合でも、リストの100項目、項目の検出またはこの項目はリストにない)は最大で7試験は8?とにかく、この100). 新規リストする必要はありません全部エクスペディアで。
現在を行いますリスト消去です。各項目のリストを探してみてこの項目のリストをバイナリ検索).商品をご購入の場合は、この商品のリスト も 削除してから新一覧です。このリストが小さくなるほど、一層の除去が進むことをルックアップになる。から削除する項目のリストに対しては何の影響もありません正しい順にリストする必要がないものリゾートのリストの消去ます。
終了時に消去法で、両方のリストが空の場合も同じです。ていない場合、空の全項目について、いまだに古いリスト項目をリスト(その他また入力してください)し、それによってこれらの 削除された項目の.すべての項目のリスト項目がなかったのリスト(また入力してくださいそれ以外の場合)すること 追加項目.
てのオブジェクトのリスト独自の"?この場合に最初に考えてみたいと思い造マップ(hashmaps)をスキャンのリストおよびルックアップ毎のオブジェクト。
map1
map2
removedElements
addedElements
list1.each |item|
{
map1.add(item)
}
list2.each |item|
{
map2.add(item)
}
list1.each |item|
{
removedElements.add(item) unless map2.contains?(item)
}
list2.each |item|
{
addedElements.add(item) unless map1.contains?(item)
}
ごめんな恐ろしいメタ言語混合Ruby-コンテンツビジネスJava:-P
最終的に removedElements が含まれまでの要素に属するlist1のではなく,list2、 addedElements が含まれまでの要素に属するlist2.
コスト全体の動作はO(4-N)のルックアップの地図/辞書判断される定数です。一方でリニア/バイナリ検索の各要素をリストするにはO(N^2).
編集:第二の思想の移動の最終チェックインのループごと削除のプ...そのことを言...:)
list1.each |item|
{
map1.add(item)
}
list2.each |item|
{
map2.add(item)
addedElements.add(item) unless map1.contains?(item)
}
list1.each |item|
{
removedElements.add(item) unless map2.contains?(item)
}