Znajdowanie lidera w zbiorze¶
Opis problemu¶
Implementacja¶
Funkcja countOccurences:
- Parametry:
number(liczba, której wystąpienia liczymy),array(tablica, w której szukamy),length(długość tablicy).- Działanie: Przechodzi przez tablicę i liczy, ile razy
numberwystępuje w tablicy. - Zwraca: Liczbę wystąpień
numberw tablicy.
Funkcja findMajority:
- Parametry:
array(tablica, w której szukamy elementu większościowego,length(długość tablicy).- Działanie:
- Używa algorytmu Boyera-Moore'a do znalezienia potencjalnego elementu większościowego.
- Przechodzi przez tablicę, aktualizując
currentCandidate(obecny kandydat na element większościowy) icounter(licznik wystąpień kandydata). - Po przejściu przez tablicę, sprawdza, czy
currentCandidatefaktycznie jest elementem większościowym, licząc jego wystąpienia za pomocącountOccurences. - Zwraca: Element większościowy, jeśli istnieje, w przeciwnym razie \(-1\).
Funkcja main:
- Tworzy tablicę array z \(10\) elementami.
- Wywołuje funkcję
findMajority, aby znaleźć element większościowy w tablicy. - Wypisuje wynik na standardowe wyjście.
- Przykładowe dane wejściowe: \([1, 2, 5, 5, 7, 5, 5, 10, 5, 5]\).
- Oczekiwany wynik: \(5\), ponieważ liczba \(5\) występuje \(6\) razy, co jest więcej niż połowa długości tablicy (\(5\)).