Wir haben zwei sortierte Arrays der gleichen Größe n. Lassen Sie uns das Array a und b aufrufen.Finden Sie das mittlere Element in verschmolzenen Arrays in O (logn)
Wie finden Sie das mittlere Element in einem sortierten Array von a und b zusammengeführt?
Example:
n = 4
a = [1, 2, 3, 4]
b = [3, 4, 5, 6]
merged = [1, 2, 3, 3, 4, 4, 5, 6]
mid_element = merged[(0 + merged.length - 1)/2] = merged[3] = 3
Kompliziertere Fälle:
Fall 1:
a = [1, 2, 3, 4]
b = [3, 4, 5, 6]
Fall 2:
a = [1, 2, 3, 4, 8]
b = [3, 4, 5, 6, 7]
Fall 3:
a = [1, 2, 3, 4, 8]
b = [0, 4, 5, 6, 7]
Fall:
a = [1, 3, 5, 7]
b = [2, 4, 6, 8]
Zeitaufwand: O (log n). Irgendwelche Ideen?
Können Sie das Kollektionspaket verwenden? Wenn ja, dann könnten Sie die SortedSet-Implementierung TreeSet verwenden und das mittlere Element abrufen. – YoK
@Yok: Wollen Sie die Arrays in ein TreeSet kopieren? Es wäre dann mindestens O (N). –