A = [a1, a2, a3...] #a1<a2<a3...
B = [b1, b2...] #b1<b2<b3...
A と B は互いに素です。要素の数と A/B の値は事前にわかりません。リスト要素と削除要素の両方の要素の値を比較したい場合:
delete a[i+1] if there is no b[j] such that a[i]<b[j]<a[i+1]
delete b[i+1] if there is no a[j] such that b[i]<a[j]<b[i+1]
最後に、AとBの組み合わせではなく、リストを分離したい.
たとえばA[0] < B[0]
、A = [1, 10, 40]、B = [15, 30] の場合。比較A[1]
してB[0]
まず。10
B の要素が 1 から 15 の間にないため削除します。次に、15
15 と 30 の間に要素が存在しないため削除します。出力は次のようになります。新しい 2 つのリストの要素を並べ替えようとすると、次のようになります。A[0]<B[0]<A[1]<B[1]<...
の場合A[0] > B[0]
、その逆。