Algorytm MAX (MIN)

advertisement
Algorytmy – A. Jędryczkowski
Copyright – 2005 r.
Algorytmem nazywamy skończony ciąg czynności,
przekształcający zbiór danych wejściowych (danych)
na zbiór danych wyjściowych (wyników).
DANE
Algorytm
WYNIKI
Algorytmy – A. Jędryczkowski
Copyright – 2005 r.
Algorytmy, które wykonują działania matematyczne
na danych liczbowych,
numerycznymi.
nazywamy
algorytmami
Algorytmika, to dział informatyki zajmujący się
różnymi
aspektami
algorytmów
tworzenia
i
analizowania
Algorytmy – A. Jędryczkowski
Copyright – 2005 r.
Program komputerowy to logicznie uporządkowany
ciąg instrukcji
algorytm.
języka
programowania
realizujący
Specyfikacja zadania to szczegółowy opis zadania,
w którym wymienia się dane wejściowe i wyniki oraz
warunki jakie muszą spełniać. Specyfikacja określa
zatem związek pomiędzy danymi a wynikami.
Algorytmy – A. Jędryczkowski
Copyright – 2005 r.
Problem
wybór
Algorytm
Komputer
wykonuje
Program
komputerowy
zapis
realizuje
Program
Algorytm
Algorytmy – A. Jędryczkowski
Copyright – 2005 r.
oblicz średnią arytmetyczną
dowolnych liczb rzeczywistych.
Problem:
trzech
Dane: trzy dowolne liczby rzeczywiste A, B, C
Wynik: wartość średniej arytmetycznej liczb A, B, C,
równą SR
Algorytmy – A. Jędryczkowski
Copyright – 2005 r.
1. Zacznij algorytm
2. Wprowadź wartość trzech liczb A, B, C
3. Oblicz wartość wyrażenia: SUMA:=A+B+C
4. Oblicz wartość wyrażenia SR:=SUMA/3
5. Wyprowadź wynik: SR
6. Zakończ algorytm
Algorytmy – A. Jędryczkowski
Copyright – 2005 r.
Problem: oblicz wartość bezwzględną dowolnej
liczby rzeczywistej.
Dane: dowolna liczba rzeczywista A
Wynik: wartość bezwzględna liczby A równa W
Algorytmy – A. Jędryczkowski
Copyright – 2005 r.
1. Zacznij algorytm
2. Wprowadź wartość liczbę A
3. Jeżeli A>=0, to W:=A. W przeciwnym
wypadku W:=-A
4. Wyprowadź wynik: W
5. Zakończ algorytm
Algorytmy – A. Jędryczkowski
Copyright – 2005 r.
START
Początek algorytmu
STOP
Koniec algorytmu
Wprowadź (A, B)
Wyprowadź (W)
Wprowadzanie danych
Blok wejścia
Wyprowadzanie danych
Blok wyjścia
Algorytmy – A. Jędryczkowski
Copyright – 2005 r.
Wykonywanie obliczeń
Blok operacyjny
S:=A+B
W:=C/A
Czy
A=0?
NIE
Sprawdzanie warunków
Blok warunkowy
albo decyzyjny
TAK
Algorytmy – A. Jędryczkowski
Copyright – 2005 r.
1
Łącznik
1
Połączenie
Algorytmy – A. Jędryczkowski
Copyright – 2005 r.
Średnia
arytmetyczna trzech
dowolnych liczb
rzeczywistych
START
Wprowadź (A, B, C)
SUMA:=A+B+C
SR:=SUMA/3
Wyprowadź (SR)
STOP
Algorytmy – A. Jędryczkowski
Copyright – 2005 r.
Wartość bezwzględna
dowolnej liczby
rzeczywistej.
Algorytm z warunkiem.
START
Wprowadź (A)
W:=A
TAK
Czy
A>0?
NIE
W:=-A
Wyprowadź (W)
STOP
Algorytmy – A. Jędryczkowski
Copyright – 2005 r.
Notacja zwana „DRZEWEM ALGORYTMU” nadaje
się do prostego przedstawiania algorytmów
porządkowania.
DRZEWO ALGORYTMU składa się z:
• korzenia
• wierzchołków pośrednich (węzłów)
• wierzchołków końcowych (liści)
Algorytmy – A. Jędryczkowski
Copyright – 2005 r.
Porządkowanie
trzech dowolnych
liczb A, B, C.
A<=B
TAK
NIE
C<=A
TAK
(C, A, B)
TAK
(A, B, C)
C<=B
NIE
TAK
B<=C
(C, B, A)
NIE
(A, C, B)
NIE
C<=A
TAK
(B, C, A)
NIE
(B, A, C)
Algorytmy – A. Jędryczkowski
Copyright – 2005 r.
ITERACJĄ nazywamy instrukcję powtarzania
ciągu instrukcji. Liczba powtórzeń może być
ustalona bądź zależeć od spełnienia
określonego warunku sprawdzanego w każdej
iteracji.
Iterację często nazywamy PĘTLĄ.
Algorytmy – A. Jędryczkowski
Copyright – 2005 r.
Wyświetlanie
kolejnych liczb
od 0 do 14
START
K:=0
Wyprowadź (K)
K:=K+1
TAK
K < 15
NIE
STOP
Algorytmy – A. Jędryczkowski
Copyright – 2005 r.
Algorytm ten stosuje się do wyszukiwania
największego (najmniejszego) elementu w zbiorze.
Dane: dziesięć nieuporządkowanych dowolnych liczb
Wynik: największa i najmniejsza liczba
Algorytmy – A. Jędryczkowski
Copyright – 2005 r.
1. Zacznij algorytm
2. Przyjmij za MAX (MIN) pierwszą liczbę
3. Dla kolejnych liczb jeśli MAX jest mniejszy od
kolejnej liczby X (MAX<X) wykonaj MAX:=X
(jeśli MIN jest większy od kolejnej liczby X
(MIN>X) wykonaj MIN:=X)
4. Wyprowadź wynik: MAX (MIN)
5. Zakończ algorytm
Algorytmy – A. Jędryczkowski
Copyright – 2005 r.
Zasada ta ma następujący cel:
Problem algorytmiczny dzielimy na mniejsze części,
których rozwiązanie daje rozwiązanie problemu
głównego. Najczęściej w ten sposób można
efektywniej rozwiązać problem główny.
Algorytmy – A. Jędryczkowski
Copyright – 2005 r.
Algorytm ten stosuje się do jednoczesnego
wyszukiwania największego
elementu w zbiorze.
i
najmniejszego
Dane: dziesięć nieuporządkowanych dowolnych liczb
Wynik: największa i najmniejsza liczba
Algorytmy – A. Jędryczkowski
Copyright – 2005 r.
W celu wyszukania najmniejszej i największej
liczby można oczywiście wykonać najpierw
algorytm MAX a potem algorytm MIN. Takie
postępowanie jest jednak mało ekonomiczne bo
wymaga przejrzenia całego zbioru liczb dwukrotnie.
Wstępnie podzielimy zbiór liczba na dwa podzbiory
wykonując porównania sąsiednich liczb (kolejny
slajd)
Algorytmy – A. Jędryczkowski
Copyright – 2005 r.
Zbiór liczb: 2, 5, 3, 7, 9, 1, 4, 8, 0, 6
5
7
2<5
3<7
2
3
Kandydaci na MAX -
Kandydaci na MIN -
9
9>1
1
8
6
4<8
0<6
4
0
Pierwszy zbiór przetwarzamy algorytmem MAX a drugi
algorytmem MIN otrzymując szukane wartości.
Algorytmy – A. Jędryczkowski
Copyright – 2005 r.
Porządkowanie przez wybór (selection sort)
Algorytm ten wykorzystuje poznany wcześniej
algorytm MIN. Wyszukiwany jest najmniejszy
element, a następnie zamieniany jest miejscami z
ostatnim elementem przeszukiwanego podciągu
wartości. Kolejne wyszukiwanie prowadzone jest
bez elementów, które zostały już uporządkowane.
Algorytmy – A. Jędryczkowski
Copyright – 2005 r.
4
4
4
4
4
4
6
7
3
3
3
3
7
7
7
6
5
6
6
6
6
6
---
4
1
2
2
4
4
---
4
4
7
7
7
7
---
4
4
3
2
2
4
---
3
3
3
2
4
4
---
2
2
2
2
2
2
---
2
2
2
2
2
1
---
1
1
1
1
1
1
Algorytmy – A. Jędryczkowski
Copyright – 2005 r.
2
7
2
7
7
2
7
2
Komórka pomocnicza
Algorytmy – A. Jędryczkowski
Copyright – 2005 r.
Algorytmy – A. Jędryczkowski
Copyright – 2005 r.
Download