Sortowanie i mediana dla małych liczb

0
  1. Udowodnij, że do scalania dwóch ciągów uporządkowanych długości 2 i 5 potrzeba i wystarcza 5
    porównań.
  2. Wykaż, że każdy algorytm znajdujący medianę w zbiorze 5-elementowym wykona w
    pesymistycznym przypadku co najmniej 5 porównań. Zaproponuj algorytm dokonujący tego
    za pomocą co najwyżej 6 porównań.

Proszę o podpowiedzi ew. rozwiązanie w formie ukrytej.

0

Podpowiedź: Weź kartę, długopis i rozrysuj to sobie. Prostszej metody nie znam.
Ukryte rozwiazanie: www.google.pl

0

A próbowałeś sam? ;>

0
  1. Porównujemy tylko "głowy" ciągów między sobą, następnie usuwamy mniejszą głowę i wrzucamy do ciągu wynikowego. Siłą rzeczy każde porównanie sprawia że do ciągu wynikowego leci jedna liczba. Kiedy jeden z ciągów się skończy, możemy całą resztę przepiąć. Pesymistycznie w takiej sytuacji musimy przepisać cały jeden, dłuższy ciąg.
0

Odnośnie drugiego, możesz wzorować się na sortowaniu pięciu liczb za pomocą co najwyżej siedmiu porównań.
http://users.uj.edu.pl/~ufkapano/algorytmy/lekcja11/sort3.html

0

Brzmi sprytnie, ale dla ciągów (a1, ..., a5), (b1, b2) wyszło mi 6 porównań, a ma być max 5.
a1 < a2 < b1 < a3 < a4 < a5 < b2

a1 < b1. Wpisz a1.
a2 < b1. Wpisz a2.
b1 < a3. Wpisz b1.
a3 < b2. Wpisz a3.
a4 < b2. Wpisz a4.
a5 < b2. Wpisz a5.

0

@Vardamir
Czyli sortujemy 4 liczby używając 3 porównań a następnie próbujemy "wstawić" 4. liczbę do posortowanego ciągu (zaczynając od środka), na końcu zwracamy a[2] (zakładam indeksowanie tablicy od 0).

1 użytkowników online, w tym zalogowanych: 0, gości: 1