2013-03-14 13 views

Odpowiedz

3

Można to zrobić w czasie O (n).

Możesz sprawdzić ten link odsyłające

+0

Żartujesz, prawda? Używając naiwnego podejścia, można to zrobić w O (N) –

+0

@IvayloStrandjev: - Popraw mnie, jeśli się mylę, ale uznałem to za tablicę 2D. Czy jest to możliwe również w macierzy 2D, czyli O (n) czasie? –

+0

'Tablica liczb n jest podana, gdzie n jest liczbą parzystą. Należy określić maksymalną i minimalną liczbę n. Nie widzę tu żadnej wzmianki o 2D. OP prosi o znalezienie minimalnej i maksymalnej liczby spośród n liczb przy minimalnej liczbie porównań. –

4

Można to zrobić za pomocą 3*n/2-2 porównań.

Dla n == 2 wystarczy porównać dwie liczby. Załóżmy teraz, że mamy minimum i maksimum dla pierwszych numerów n-2. Porównaj pozostałe dwie liczby, a następnie porównaj większą z poprzednią maksymalną, a mniejszą z poprzednią.

1

Dla nieposortowanych tablic można to zrobić w przybliżeniu w przybliżeniu 1.5n. Możesz to zrobić, porównując pary elementów tablicy i przechowując min i lokalną max. Zrobiłeś n/2 porównań, aby znaleźć (miejscowi) max i n/2, aby znaleźć min. W sumie w tej fazie jest n.

Teraz przechodzisz przez miejscowych max i min i znajdujesz globalne maksimum i min. Wymagałoby to również porównań n/2. Tak więc n + n/2 = 1.5n.

Jeśli tablica jest posortowana można go znaleźć bez żadnych porównań, ponieważ najniższy numer jest na pozycji 0, a najwyższy na pozycji N - 1.

Powiązane problemy