Poszukiwanie najmniejszej i największej wartości w zbiorze
przygotowała Magdalena Tyde
Co to jest zbiór?
Nie martw się jeśli nie potrafisz odpowiedzieć.
Jest to pojęcie pierwotne teorii mnogości Georga Cantora i leżące u podstaw całej matematyki.
Intuicyjnie jest to nieuporządkowany zestaw różnych obiektów.
Elementami zbioru mogą to być liczby, ale również rzeczy czy ludzie.
Poszukiwanie najmniejszej i największej wartości w zbiorze
Znalezienie najmniejszego i największego elementu w zbiorze pozwala na określenie tzw. rozpiętości zbioru, czyli różnicy pomiędzy najmniejszą, a największą wartością elementów występujących w danym zbiorze.
Zastosowanie funkcji w algorytmach iteracyjnych
Algorytm wyboru minimum z n liczb.
Algorytm znajdowania minimum (lub maksimum) ma zastosowanie w rozwiązaniach różnych zadań, nie tylko matematycznych - np. przy wyborze najniższej ceny wśród cen tych samych produktów, przy wyborze zawodnika, który uzyskał najwyższą liczbę punktów, lub ucznia, który uzyskał najwyższą średnią ocen.
Zastosowanie funkcji w algorytmach iteracyjnych
Algorytm wyboru minimum z n liczb.
Z algorytmu wyboru minimum (lub maksimum) korzysta się również w innych algorytmach, np. w algorytmach sortowania. Jeśli wiemy jak znaleźć element najmniejszy to łatwo uporządkować elementy od najmniejszego do największego. Szukanie elementu najmniejszego to typowy algorytm iteracyjny - powtarzają się w nim operacje porównywania i podstawiania.
Zastosowanie funkcji w algorytmach iteracyjnych
Algorytm wyboru minimum z n liczb.
Algorytm znajdowania elementu najmniejszego. Wskazujemy dowolny element np. pierwszy, jako najmniejszy i porównujemy go z drugim elementem. Jeśli drugi element okaże się mniejszy to on zaczyna być traktowany jako minimum. Następnie porównujemy element aktualnie najmniejszy z trzecim elementem itd. - aż do końca ciągu elementów.
Zastosowanie funkcji w algorytmach iteracyjnych
Algorytm wyboru minimum z n liczb.
Przykład: Stosowanie algorytmu wyboru najmniejszego elementu z n liczb.
Zadanie: Wybierz najmniejszą liczbę wśród n liczb.
Dane: Liczba naturalna n, oznaczająca ilość wprowadzanych liczb, n dowolnych liczb rzeczywistych, zapamiętywanych kolejna w zmiennej x.
Wynik: Wartość elementu najmniejszego min.
Zastosowanie funkcji w algorytmach iteracyjnych
Algorytm wyboru minimum z n liczb.
Przykład: Stosowanie algorytmu wyboru najmniejszego elementu z n liczb.
Lista kroków:
- Zacznij algorytm.
- Wprowadź liczbę danych n: n.
- Wprowadź pierwszą liczbę x: x.
- Zmiennej min przypisz wartość x: min:= x.
- Wprowadź kolejną liczbę x.
- Porównaj kolejną liczbę z min: x < min.
- Jeśli kolejna liczba x jest mniejsza od min, przypisz jej wartość zmiennej min: min := x.
- Jeśli nie jest to ostatnia liczba, wróć do kroku 5.
- Wyprowadź wynik: min.
- Zakończ algorytm.
Zastosowanie funkcji w algorytmach iteracyjnych
Algorytm wyboru minimum z n liczb.
Przykład: Definicja funkcji znajdowania minimum.
Zapisując algorytm znajdowania minimum w postaci programu, zdefiniujemy funkcję MinN z jednym parametrem n (n - liczba elementów ). Funkcja będzie zwracać wartość elementu najmniejszego.
Funkcja wywołana jest w programie głównym w instrukcji podstawienia.
Pascal MinWartosc := MinN(LiczbaElementow);
C++ MinWartosc = MinN(LiczbaElementow);
Zastosowanie funkcji w algorytmach iteracyjnych
Algorytm wyboru minimum z n liczb.
Przykład: Definicja funkcji znajdowania minimum.
Zastosowanie funkcji w algorytmach iteracyjnych
Algorytm wyboru minimum z n liczb.
Przykład: Definicja funkcji znajdowania minimum.
Jednoczesne znajdowanie największego i najmniejszego elementu w zbiorze
Algorytm naiwny
Algorytm naiwny szukania elementu najmniejszego i największego w zbiorze składającym się z n elementów polega na zastosowaniu algorytmu szukania minimum dla n elementów, usunięcia elementu najmniejszego ze zbioru, a następnie zastosowania algorytmu szukania maksimum dla zbioru składającego się z n-1 elementów (czyli pomniejszonego o element najmniejszy)
Jednoczesne znajdowanie największego i najmniejszego elementu w zbiorze
Algorytm optymalny - metoda "dziel i zwyciężaj"
Optymalnym algorytmem jednoczesnego znajdowania elementu najmniejszego i największego jest zastosowanie metody "dziel i zwyciężaj". Nazwa metody pochodzi od angielskiego sformułowania devide and conquer (parafraza słynnej łacińskiej formuły politycznej divide et impera - dziel i rządź)
Jednoczesne znajdowanie największego i najmniejszego elementu w zbiorze
Algorytm optymalny - metoda "dziel i zwyciężaj"
"Dziel" oznacza podział zadania na mniejsze części , a "zwyciężaj" - znalezienie rozwiązania (osiągnięcie sukcesu) w każdej z nich oddzielnie. Zastosowanie tej metody pokażę na przykładzie algorytmu jednoczesnego szukania najmniejszego i największego elementu zbioru.
Jednoczesne znajdowanie największego i najmniejszego elementu w zbiorze
Algorytm optymalny - metoda "dziel i zwyciężaj"
Zbiór dzielimy na dwa podzbiory w sposób następujący
porównujemy parami liczby - pierwszą z drugą, trzecią z czwartą itd. Liczby mniejsze zapisujemy w jednym podzbiorze, a większe w drugim. W pierwszym podzbiorze, korzystając z algorytmu znalezienia minimum, znajdujemy element najmniejszy. W drugim podzbiorze korzystając z algorytmu na znalezienie maksimum, znajdujemy element największy.
Jednoczesne znajdowanie największego i najmniejszego elementu w zbiorze
Algorytm optymalny - metoda "dziel i zwyciężaj"
Na poniższym rysunku został przedstawiony przypadek, gdy liczba elementów zbioru jest parzysta (dzieli się przez 2). W przypadku nieparzystej liczby elementów pozostanie wolny. Zapamiętuje się go w zmiennej pomocniczej i na koniec porównuje z najmniejszym i największym znalezionym elementem. W szczególnym przypadku to właśnie ten element może być minimalny (bądź maksymalny).
Jednoczesne znajdowanie największego i najmniejszego elementu w zbiorze
Algorytm optymalny - metoda "dziel i zwyciężaj"
Jednoczesne znajdowanie największego i najmniejszego elementu w zbiorze
Algorytm optymalny - metoda "dziel i zwyciężaj", a
Algorytm naiwny
W algorytmie naiwnym wykonywanych jest n-1 porównań podczas znajdowania minimum i n-2 porównań przy znajdowaniu maksimum, czyli razem wykonywana jest poniższa liczba porównań:
n - 1 + n - 2 = 2n - 3
Jednoczesne znajdowanie największego i najmniejszego elementu w zbiorze
Algorytm optymalny - metoda "dziel i zwyciężaj", a
Algorytm naiwny
W metodzie "dziel i zwyciężaj" (w przypadku parzystej liczby elementów) wykonujemy najpierw n/2 porównań, aby podzielić zbiór na dwie części. W każdej części składającej się z n/2 elementów wykonujemy (n/2) - 1 porównań, czyli razem
(n/2) + ((n/2) -1) + (n/2)-1) = (3n/2) - 2
Jednoczesne znajdowanie największego i najmniejszego elementu w zbiorze
Algorytm optymalny - metoda "dziel i zwyciężaj", a
Algorytm naiwny
Stosując metodę "dziel i zwyciężaj", wykonujemy mniejszą liczbę porównań niż w algorytmie naiwnym. Na przykład dla zbioru składającego się ze 100 elementów, stosując metodę "dziel i zwyciężaj", wykonujemy 148 porównań, a w algorytmie naiwnym 197.
Poszukiwanie najmniejszej i największej wartości w zbiorze przygotowała Magdalena Tyde
Poszukiwanie najmniejszej i największej wartości w zbiorze
By mtyde
Poszukiwanie najmniejszej i największej wartości w zbiorze
- 1,358