|
Serwis Edukacyjny w I-LO w Tarnowie
Materiały dla uczniów liceum |
Wyjście Spis treści Wstecz Dalej
Autor artykułu: mgr Jerzy Wałaszek |
©2026 mgr Jerzy Wałaszek
|
| Podciąg | Suma | |||
| -4 | 3 | -1 | 2 | -4 |
| -4 | 3 | -1 | 2 | -1 |
| -4 | 3 | -1 | 2 | -2 |
| -4 | 3 | -1 | 2 | 0 |
| -4 | 3 | -1 | 2 | 3 |
| -4 | 3 | -1 | 2 | 2 |
| -4 | 3 | -1 | 2 | 4 |
| -4 | 3 | -1 | 2 | -1 |
| -4 | 3 | -1 | 2 | 1 |
| -4 | 3 | -1 | 2 | 2 |
Największą sumę posiada podciąg {3, -1, 2}. Suma ta wynosi 4.
Przeanalizuj dokładnie powyższą tabelkę.
W algorytmie będziemy pamiętać:
Zasada działania będzie następująca:
W algorytmie będą dwie pętle: pętla i będzie wybierała elementy startu podciągu, a wewnętrzna pętla j będzie wybierała kolejne elementy końca podciągu. W pętli wewnętrznej będzie obliczana suma bs kolejno elementów o indeksach od i do j. Jeśli suma bs okaże się większa od sumy maksymalnej ms, to do ms wpiszemy sumę bs i jednocześnie zapamiętamy pozycję startu i końca tego podciągu w zmiennych ip oraz ik. Gdy zewnętrzna pętla i zakończy działanie, w zmiennych ms, ip, ik znajdzie się wynik.
| Wejście: | ||
| n | – | liczba elementów tablicy |
| T | – | tablica n-elementowa z ciągiem liczb |
| Wyjście: | ||
| ms | – | największa suma podciągu |
| ip | – | indeks pierwszego elementu podciągu |
| ik | – | indeks ostatniego elementu podciągu |
Poniższy program tworzy tablicę 20 elementową i wypełnia ją liczbami pseudolosowymi od -999 do 999. Następnie znajduje największą sumę podciągu oraz pozycję tego podciągu.
Algorytm Kadane'a wykorzystuje programowanie dynamiczne (ang. dynamic programming). Polega ono na tym, iż w kolejnym kroku wykorzystywane są wyniki obliczone dotychczas.
W algorytmie będziemy pamiętać:
Zasada działania jest następująca:
| Wejście: | ||
| n | – | liczba elementów tablicy |
| T | – | tablica n-elementowa z ciągiem liczb |
| Wyjście: | ||
| ms | – | największa suma podciągu |
| ip | – | indeks pierwszego elementu podciągu |
| ik | – | indeks ostatniego elementu podciągu |
Jeśli ms = 0, to podciąg o największej sumie elementów nie został znaleziony, a wynik jest najprawdopodobniej ujemny.
Lista kroków:Poniższy program tworzy tablicę 20 elementową i wypełnia ją liczbami pseudolosowymi od -999 do 999. Następnie znajduje największą sumę podciągu oraz pozycję tego podciągu.
Algorytm Kadane'a nadaje się do zbiorów posiadających przynajmniej jedną wartość dodatnią. Jeśli wszystkie elementy zbioru są ujemne, to algorytm zwróci wartość zero, jako wartość największej sumy podciągu, co jest błędne - pierwszy algorytm zwróci w tym przypadku wartość najbliższej zeru liczby ujemnej w zbiorze. Zaletą algorytmu Kadane'a jest jego niewątpliwa prostota i szybkość pracy.
![]() |
Zespół Przedmiotowy Chemii-Fizyki-Informatyki w I Liceum Ogólnokształcącym im. Kazimierza Brodzińskiego w Tarnowie ul. Piłsudskiego 4 ©2026 mgr Jerzy Wałaszek |
Materiały tylko do użytku dydaktycznego. Ich kopiowanie i powielanie jest dozwolone pod warunkiem podania źródła oraz niepobierania za to pieniędzy.
Pytania proszę przesyłać na adres email:
Serwis wykorzystuje pliki cookies. Jeśli nie chcesz ich otrzymywać, zablokuj je w swojej przeglądarce.
Informacje dodatkowe.