Mamy dwie posortowane tablice o tym samym rozmiarze n. Nazwijmy tablicę aib.Znajdź środkowy element w scalonych tablicach w O (logn)
Jak znaleźć środkowy element w posortowanej tablicy połączonej przez a i b?
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
Bardziej skomplikowane przypadki:
Przypadek 1:
a = [1, 2, 3, 4]
b = [3, 4, 5, 6]
Przypadek 2:
a = [1, 2, 3, 4, 8]
b = [3, 4, 5, 6, 7]
Przypadek 3:
a = [1, 2, 3, 4, 8]
b = [0, 4, 5, 6, 7]
Przypadek 4: wymagana
a = [1, 3, 5, 7]
b = [2, 4, 6, 8]
Czas: O (log n). Jakieś pomysły?
Czy możesz użyć pakietu kolekcji? Jeśli tak, to możesz użyć TreeSet implementacji SortedSet i uzyskać środkowy element. – YoK
@Yok: Czy chcesz skopiować tablice do TreeSet? Byłby wtedy co najmniej O (N). –