Abbiamo due array ordinati della stessa dimensione n. Chiamiamo l'array a e b.Trova l'elemento intermedio negli array uniti in O (logn)
Come trovare l'elemento centrale in un array ordinato unito da aeb?
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
casi più complicati:
Caso 1:
a = [1, 2, 3, 4]
b = [3, 4, 5, 6]
Caso 2:
a = [1, 2, 3, 4, 8]
b = [3, 4, 5, 6, 7]
Caso 3:
a = [1, 2, 3, 4, 8]
b = [0, 4, 5, 6, 7]
Caso 4:
a = [1, 3, 5, 7]
b = [2, 4, 6, 8]
Tempo di percorrenza: O (log n). Qualche idea?
È possibile utilizzare il pacchetto di raccolte? in caso affermativo, è possibile utilizzare TreeSet di implementazione SortedSet e ottenere l'elemento intermedio. – YoK
@ Yok: Stai dicendo di copiare gli array in un TreeSet? Sarebbe almeno O (N) allora. –