Wyszukiwanie lidera w zbiorze liczbowym
Lider to taka wartość w zbiorze
elementów, która powtarza się więcej niż
razy. Jeśli istnieje taka wartość, to jest ona tylko jedna. Prześledźmy przykłady:
ciąg liczb
ciąg liczb
nie posiada lidera, ponieważ żadna z liczb nie wystąpiła co najmniej
razy.
Ciąg
także nie posiada lidera, natomiast dla liczb
liderem jest liczba
.
Strategia jest następująca. Przeszukujemy
liniowo kolejne elementy i w danym etapie dwa różne elementy zbioru
wykreślamy - tak jak by ich nie było. Jeśli lider występuje w zbiorze,
to jego "pozycja" w otrzymanym podzbiorze się nie zmieni. Przeanalizujmy następujący przykład:
i pozostał na zbiór, w którym nadal mamy lidera:
Redukując
w ten sposób elementy dochodzimy do sytuacji, gdy pozostanie element,
który jest kandydatem na lidera. Musimy teraz tylko liniowo zliczyć i
sprawdzić, czy dana wartość występuje więcej niż
razy.
Warto podkreślić, że znaleziony element nie musi być liderem. Prześledźmy przykład, w którym nie ma lidera:
Po wykreśleniu dwóch początkowych wyrazów pozostaje podzbiór
w którym jest lider.
W programie przedstawionym poniżej ważną rolę odgrywa zmienna
.
Odpowiedzialna jest ona za kontrolowanie wykreślania dwóch elementów o
różnych wartościach. Jeśli wykreślimy wszystkie elementy, oznacza to, że
żadna wartość nie spełnia oczekiwań. Przeanalizujmy przypadek:
Brak komentarzy:
Prześlij komentarz