Temat: Metoda „Dziel i zwyciężaj”.
W metodzie „dziel i zwyciężaj” słowo dziel oznacza podział zadnia na mniejsze części, a słowo zwyciężaj - znalezienie rozwiązania w każdej z nich oddzielnie. Przykładem zastosowania tego algorytmu jest jednoczesne szukanie najmniejszego i największego elementu zbioru.
Zbiór należy podzielić na dwa podzbiory: porównać parami liczby pierwszą z drugą, trzecią z czwartą itd. Liczby mniejsze zapisujemy w jednym podzbiorze, a większe w drugim. Korzystając z algorytmu na znalezienie minimum, w pierwszym znajdujemy element najmniejszy. W drugim podzbiorze znajdujemy element największy korzystając z algorytmu na znalezienie największego elementu. Gdy zbiór ma nieparzystą liczbę elementów, środkowy zapisuje się w zmiennej pomocniczej, a na końcu porównuje z największym i najmniejszym elementem
Zadanie1
Przedstaw algorytm jednoczesnego znajdowania minimum i maximum dla zbioru z parzystą ilością liczb. Zdefiniuj procedury z parametrem przekazywanym przez wartość:
a) procedurę wczytywania liczb do tablicy, np. procedure wczytaj(k:byte)
b) procedurę dzielenia tablicy na dwie mniejsze, np. procedure dziel(k:byte)
c) procedurę znajdowania w tablicach wartości najmniejszej i najwięcej, np. procedure minmax(k:byte)
Zadanie2
Przedstaw algorytm jednoczesnego znajdowania minimum i maximum dla zbioru z nieparzystą ilością liczb. Zdefiniuj trzy procedury, podobnie jak w zadaniu 1.
Zadanie3
Przedstaw algorytm jednoczesnego znajdowania minimum i maximum dla zbioru z parzystą lub nieparzystą ilością liczb.
1