Wpisany przez Tomasz Lubiński,
04 września 2009 19:30
Załóżmy że mamy daną tablicę n-elementów i chcemy odnaleźć w niej element minimalny (bądź maksymalny). Niech będzie to tablica a o indeksach od 1 do n. Czyli kolejne jej elementy oznaczymy: a[1], a[2], a[3], ..., a[n-1], a[n].
By odnaleźć element minimalny podejmiemy następujące kroki:
Operację odnajdowania minimalnego elementu w tablicy możemy zapisać następującym schematem blokowym:
Niech będzie dana tablica 5-elementowa, a = {4, 6, 2, 1, 3}.
Na początku inicjujemy wynik = a[1] = 4.
Następnie przeglądamy kolejne elementy tablicy:
a[2] < wynik? 6 nie jest mniejsze od 4, zatem idziemy do kolejnego elementu,
a[3] < wynik? 2 jest mniejsze od 4, zatem aktualizujemy wynik = a[3] = 2,
a[4] < wynik? 1 jest mniejsze od 2, zatem aktualizujemy wynik = a[4] = 1,
a[5] < wynik? 3 nie jest mniejsze od 1, to był ostatni element tablicy zatem zakończyliśmy przeszukiwanie tablicy,
Zatem ostateczny wynik to 1.
By odnaleźć element maksymalny podejmiemy następujące kroki:
Operację odnajdowania maksymalnego elementu w tablicy możemy zapisać następującym schematem blokowym:
Niech będzie dana tablica 5-elementowa, a = {4, 6, 2, 1, 3}.
Na początku inicjujemy wynik = a[1] = 4.
Następnie przeglądamy kolejne elementy tablicy:
a[2] > wynik? 6 jest większe od 4, zatem aktualizujemy wynik = a[2] = 6,
a[3] > wynik? 2 nie jest większe od 6, zatem przechodzimy do kolejnego elementu,
a[4] > wynik? 1 nie jest większe od 6, zatem przechodzimy do kolejnego elementu,
a[5] > wynik? 3 nie jest większe od 6, to był ostatni element tablicy zatem zakończyliśmy przeszukiwanie tablicy,
Zatem ostateczny wynik to 6.
By odnaleźć element minimalny podejmiemy następujące kroki:
- na początku zainicjujemy wynik pierwszą wartością z tablicy, czyli a[1],
- następnie przejdziemy po kolejnych elementach tablicy (rozpoczynając od drugiego) i jeżeli dany element tablicy jest mniejszy od naszego wyniku, to zaktualizujemy nasz wynik przypisując do niego ten element,
- po przejściu po wszystkich elementach otrzymamy w wyniku element najmniejszy w tablicy.
Operację odnajdowania minimalnego elementu w tablicy możemy zapisać następującym schematem blokowym:
Przykład:
Niech będzie dana tablica 5-elementowa, a = {4, 6, 2, 1, 3}.
Na początku inicjujemy wynik = a[1] = 4.
Następnie przeglądamy kolejne elementy tablicy:
a[2] < wynik? 6 nie jest mniejsze od 4, zatem idziemy do kolejnego elementu,
a[3] < wynik? 2 jest mniejsze od 4, zatem aktualizujemy wynik = a[3] = 2,
a[4] < wynik? 1 jest mniejsze od 2, zatem aktualizujemy wynik = a[4] = 1,
a[5] < wynik? 3 nie jest mniejsze od 1, to był ostatni element tablicy zatem zakończyliśmy przeszukiwanie tablicy,
Zatem ostateczny wynik to 1.
By odnaleźć element maksymalny podejmiemy następujące kroki:
- na początku zainicjujemy wynik pierwszą wartością z tablicy, czyli a[1],
- następnie przejdziemy po kolejnych elementach tablicy (rozpoczynając od drugiego) i jeżeli dany element tablicy jest większy od naszego wyniku, to zaktualizujemy nasz wynik przypisując do niego ten element,
- po przejściu po wszystkich elementach otrzymamy w wyniku element największy w tablicy.
Operację odnajdowania maksymalnego elementu w tablicy możemy zapisać następującym schematem blokowym:
Przykład:
Niech będzie dana tablica 5-elementowa, a = {4, 6, 2, 1, 3}.
Na początku inicjujemy wynik = a[1] = 4.
Następnie przeglądamy kolejne elementy tablicy:
a[2] > wynik? 6 jest większe od 4, zatem aktualizujemy wynik = a[2] = 6,
a[3] > wynik? 2 nie jest większe od 6, zatem przechodzimy do kolejnego elementu,
a[4] > wynik? 1 nie jest większe od 6, zatem przechodzimy do kolejnego elementu,
a[5] > wynik? 3 nie jest większe od 6, to był ostatni element tablicy zatem zakończyliśmy przeszukiwanie tablicy,
Zatem ostateczny wynik to 6.
Implementacje
Autor | Język programowania | Komentarz | Otwórz | Pobierz | Ocena |
Tomasz Lubiński | C# | MS Visual Studio .net | .cs | .cs | ***** / 14 |
Tomasz Lubiński | C/C++ | .cpp | .cpp | ***** / 15 | |
Marian | C/C++ | C++ | .cpp | .cpp | ***** / 6 |
Krzysztof Sośnierz | C/C++ | C++ templates | .cpp | .cpp | ***** / 4 |
Krzysztof Kozłowski | C/C++ | Implementacja bez użycia tablicy | .cpp | .cpp | ***** / 3 |
Tomasz | C/C++ | C++ liczby zmiennoprzecinkowe | .cpp | .cpp | ***** / 4 |
Adam CZ | C/C++ | Klasa C++ | .cpp | .cpp | ***** / 2 |
Magdalena Dziesińska | C/C++ | C z użyciem funkcji | .cpp | .cpp | ***** / 18 |
Tomasz Lubiński | Delphi/Pascal | .pas | .pas | ***** / 1 | |
Adam Chrapkowski | Haskell | .hs | .hs | ***** / 0 | |
Tomasz Lubiński | Java | .java | .java | ***** / 8 | |
Dominik Goździuk | JavaScript | .js | .js | ***** / 4 | |
Jakub Konieczny | Java_Block | .jbf | .jbf | ***** / 0 | |
Dominik Goździuk | Perl | .pl | .pl | ***** / 0 | |
_marass_ | Php | wykorzystana pętla for | .php | .php | ***** / 3 |
seveN. | Php | wykorzystana pętla while | .php | .php | ***** / 1 |
Jakub Konieczny | Python | .py | .py | ***** / 6 | |
Nikodem Solarz | Ruby | 4 metody do obliczania wartości minimalnej i maksymalnej z tablicy | .rb | .rb | ***** / 0 |
Poprawiony: 26 maja 2011 20:52
TAK