Bei zwei Arrays, wie findet man das maximale Element, das beiden Arrays gemeinsam ist?Finden Sie das maximale Element, das in zwei Arrays gemeinsam ist?
Ich dachte daran, beide Arrays (n log n) zu sortieren und dann die binäre Suche jedes Elements von einem sortierten Array (beginnend mit einem größeren) in einem anderen Array durchzuführen, bis eine Übereinstimmung gefunden wurde.
zB:
a = [1,2,5,4,3]
b = [9,8,3]
Maximum common element in these array is 3
Können wir es besser machen als n log n?
Nicht, dass es die Gesamtkomplexität hilft, aber in Ihr letzter Schritt eine lineare Suche, mit einem frühen, wenn Sie einen zu kleinen Wert finden, wäre wahrscheinlich schneller als eine binäre Suche. Jedes Mal, wenn Sie es an der Stelle fortsetzen konnten, an der Sie das letzte Mal unterbrochen haben (nicht von Anfang an), weil der Wert, den Sie suchen, kleiner ist als der letzte Wert, den Sie gesucht haben. Daher ist die Gesamtzeit, die für die Suche benötigt wird, O (die Größe eines "anderen Arrays"), die ungleichmäßig zwischen den Elementen von "einem sortierten Array" aufgeteilt ist. Sie können auch Interpolationssuchen und dergleichen durchführen. –