Zadania

OBOWIĄZKOWE DO PRZESŁANIA: dwa zadania z zestawu

W rozwiązaniach należy umieścić kod testujący przygotowane funkcje.

ZADANIE 17.1 (WYSZUKIWANIE LINIOWE)

Napisać program, który na listę L wstawi n liczb wylosowanych z zakresu od 0 do k-1. Następnie program wylosuje liczbę y z tego samego zakresu i znajdzie wszystkie jej wystąpienia na liście L przy pomocy wyszukiwania liniowego. [n=100, k=10]

ZADANIE 17.2 (WYSZUKIWANIE BINARNE)

Napisać wersję rekurencyjną wyszukiwania binarnego.


def binarne_rek(L, left, right, y):
    """Wyszukiwanie binarne w wersji rekurencyjnej."""
    pass

ZADANIE 17.3 (MEDIANA)

Zaimplementować prostą metodę znajdowania mediany polegającą na posortowaniu zbioru i wybraniu elementu środkowego.


def mediana_sort(L, left, right): pass

ZADANIE 17.4 (MODA)

Zaimplementować prostą metodę znajdowania mody (dominanty) w zbiorze nieuporządkowanym przez posortowanie go, a następnie zastosowanie algorytmu dla zbioru uporządkowanego.


def moda_sort(L, left, right): pass

ZADANIE 17.5 (MODA)

Zaimplementować prostą metodę znajdowania mody (dominanty) w zbiorze nieuporządkowanym przez stworzenie licznika wystąpień za pomocą słownika Pythona. Czas pracy algorytmu ma być liniowy O(n).


def moda_py(L, left, right): pass

ZADANIE 17.6 (LIDER)

Zaimplementować prostą metodę znajdowania lidera w zbiorze nieuporządkowanym przez stworzenie licznika wystąpień za pomocą słownika Pythona. Czas pracy algorytmu ma być liniowy O(n).


def lider_py(L, left, right): pass