2つの配列がある場合、両方の配列に共通の最大要素を見つける方法は?2つの配列で共通する最大要素を探しますか?
私は、両方の配列(n log n)をソートして、マッチが見つかるまで別の配列の1つのソート済み配列(より大きなものから順に)のすべての要素をバイナリ検索することを考えていました。
例:
a = [1,2,5,4,3]
b = [9,8,3]
Maximum common element in these array is 3
我々は、n個のログnよりも優れて行うことができますか?
ない、それは全体的な複雑さを助け、しかしであることあなたの最後のステップでは、早すぎる値を見つけるとすぐに線形検索が行われ、おそらくバイナリ検索より高速になります。あなたが探している値があなたが最後に見つけた値よりも小さいため、前回から中断した場所から再開することができます(最初からではありません)。したがって、検索に費やされる合計時間はO(「別の配列」のサイズ)で、「1つのソートされた配列」の要素間で不均等に分割されます。補間検索などもできます。 –