! "# $ % "! &#"'% "! &( #'% "! )

Podobne dokumenty
WYŻSZA SZKOŁA INFORMATYKI STOSOWANEJ I ZARZĄDZANIA

Złożoność algorytmów. Wstęp do Informatyki

PODSTAWY METROLOGII ĆWICZENIE 4 PRZETWORNIKI AC/CA Międzywydziałowa Szkoła Inżynierii Biomedycznej 2009/2010 SEMESTR 3

MATEMATYKA 4 INSTYTUT MEDICUS FUNKCJA KWADRATOWA. Kurs przygotowawczy na studia medyczne. Rok szkolny 2010/2011. tel

Harmonogramowanie projektów Zarządzanie czasem

PRAWA ZACHOWANIA. Podstawowe terminy. Cia a tworz ce uk ad mechaniczny oddzia ywuj mi dzy sob i z cia ami nie nale cymi do uk adu za pomoc

Podstawowe działania w rachunku macierzowym

14.Rozwiązywanie zadań tekstowych wykorzystujących równania i nierówności kwadratowe.

NUMER IDENTYFIKATORA:

Instalacja. Zawartość. Wyszukiwarka. Instalacja Konfiguracja Uruchomienie i praca z raportem Metody wyszukiwania...

Temat: Funkcje. Własności ogólne. A n n a R a j f u r a, M a t e m a t y k a s e m e s t r 1, W S Z i M w S o c h a c z e w i e 1

Wiedza niepewna i wnioskowanie (c.d.)

Wojewódzki Konkurs Przedmiotowy z Matematyki dla uczniów gimnazjów województwa śląskiego w roku szkolnym 2012/2013

Metoda LBL (ang. Layer by Layer, pol. Warstwa Po Warstwie). Jest ona metodą najprostszą.

Arkusz zawiera informacje prawnie chronione do momentu rozpocz cia egzaminu.

WYŻSZA SZKOŁA INFORMATYKI STOSOWANEJ I ZARZĄDZANIA

Ogólna charakterystyka kontraktów terminowych

Egzamin maturalny z matematyki Poziom podstawowy ZADANIA ZAMKNI TE. W zadaniach od 1. do 25. wybierz i zaznacz na karcie odpowiedzi poprawn odpowied.

Kurs z matematyki - zadania

Projektowanie bazy danych

2.Prawo zachowania masy

Podstawy Informatyki. Sprawność algorytmów

PRZYK ADOWY ARKUSZ EGZAMINACYJNY Z MATEMATYKI

WYKŁAD 8. Postacie obrazów na różnych etapach procesu przetwarzania

Rozdział 6. Pakowanie plecaka. 6.1 Postawienie problemu

Opis programu do wizualizacji algorytmów z zakresu arytmetyki komputerowej

PRZYK ADOWY ARKUSZ EGZAMINACYJNY Z MATEMATYKI

Podstawy programowania

Zapytanie ofertowe dotyczące wyboru wykonawcy (biegłego rewidenta) usługi polegającej na przeprowadzeniu kompleksowego badania sprawozdań finansowych

Temat: Co to jest optymalizacja? Maksymalizacja objętości naczynia prostopadłościennego za pomocą arkusza kalkulacyjngo.

ZASADY WYPEŁNIANIA ANKIETY 2. ZATRUDNIENIE NA CZĘŚĆ ETATU LUB PRZEZ CZĘŚĆ OKRESU OCENY

Zarządzanie Zasobami by CTI. Instrukcja

14P2 POWTÓRKA FIKCYJNY EGZAMIN MATURALNYZ FIZYKI I ASTRONOMII - II POZIOM PODSTAWOWY

ZAPYTANIE OFERTOWE nr 4/KadryWM13

URZĄD OCHRONY KONKURENCJI I KONSUMENTÓW

Regulamin szkolnego konkursu matematycznego dla uczniów klasy II i III: Mały Matematyk

Bazy danych. Andrzej Łachwa, UJ, /15

REGULAMIN przeprowadzania okresowych ocen pracowniczych w Urzędzie Miasta Mława ROZDZIAŁ I

Ćwiczenie 7 Liczniki binarne i binarne systemy liczbowe.

ASD - ćwiczenia III. Dowodzenie poprawności programów iteracyjnych. Nieformalnie o poprawności programów:

BADANIE UMIEJĘTNOŚCI UCZNIÓW W TRZECIEJ KLASIE GIMNAZJUM CZĘŚĆ MATEMATYCZNO-PRZYRODNICZA

ODPOWIEDZI I SCHEMAT PUNKTOWANIA ZESTAW NR 2 POZIOM ROZSZERZONY. S x 3x y. 1.5 Podanie odpowiedzi: Poszukiwane liczby to : 2, 6, 5.

ZADANIA OTWARTE KRÓTKIEJ ODPOWIEDZI

POMOC PSYCHOLOGICZNO-PEDAGOGICZNA Z OPERONEM. Vademecum doradztwa edukacyjno-zawodowego. Akademia

Architektura komputerów

Czas pracy 170 minut

Jan Olek. Uniwersytet Stefana Kardynała Wyszyńskiego. Procesy z Opóźnieniem. J. Olek. Równanie logistyczne. Założenia

Podstawa prawna: Ustawa z dnia 15 lutego 1992 r. o podatku dochodowym od osób prawnych (t. j. Dz. U. z 2000r. Nr 54, poz. 654 ze zm.

ZADANIA ZAMKNI TE. W zadaniach od 1. do 20. wybierz i zaznacz na karcie odpowiedzi jedn poprawn odpowied.

PRZYBLI ONE METODY ROZWI ZYWANIA RÓWNA

EGZAMIN MATURALNY Z MATEMATYKI

SCENARIUSZ LEKCJI WYCHOWAWCZEJ: AGRESJA I STRES. JAK SOBIE RADZIĆ ZE STRESEM?

EGZAMIN MATURALNY Z MATEMATYKI

III. GOSPODARSTWA DOMOWE, RODZINY I GOSPODARSTWA ZBIOROWE

Od redakcji. Symbolem oznaczono zadania wykraczające poza zakres materiału omówionego w podręczniku Fizyka z plusem cz. 2.

Adres strony internetowej, na której Zamawiający udostępnia Specyfikację Istotnych Warunków Zamówienia:

PAKIET MathCad - Część III

EGZAMIN MATURALNY Z MATEMATYKI

EGZAMIN MATURALNY Z MATEMATYKI

Automatyka. Etymologicznie automatyka pochodzi od grec.

Eksperyment,,efekt przełomu roku

SYSTEMY TRANSAKCYJNE (TraderTeam.pl: Rafa Jaworski, Marek Matuszek) Lekcja XVI

PROE wykład 7 kontenery tablicowe, listy. dr inż. Jacek Naruniec

NACZYNIE WZBIORCZE INSTRUKCJA OBSŁUGI INSTRUKCJA INSTALOWANIA

Warunki formalne dotyczące udziału w projekcie

Podstawowe pojęcia: Populacja. Populacja skończona zawiera skończoną liczbę jednostek statystycznych

art. 488 i n. ustawy z dnia 23 kwietnia 1964 r. Kodeks cywilny (Dz. U. Nr 16, poz. 93 ze zm.),

7. REZONANS W OBWODACH ELEKTRYCZNYCH

EGZAMIN MATURALNY Z MATEMATYKI CZERWIEC 2012 POZIOM PODSTAWOWY. Czas pracy: 170 minut. Liczba punktów do uzyskania: 50 WPISUJE ZDAJĄCY

MATEMATYKA POZIOM ROZSZERZONY PRZYK ADOWY ZESTAW ZADA NR 2. Miejsce na naklejk z kodem szko y CKE MARZEC ROK Czas pracy 150 minut

KRYTERIA OCENIANIA WYPOWIEDZI PISEMNYCH KRÓTKA I DŁUŻSZA FORMA UŻYTKOWA

MATERIAŁY DIAGNOSTYCZNE Z MATEMATYKI

Transport Mechaniczny i Pneumatyczny Materiałów Rozdrobnionych. Ćwiczenie 2 Podstawy obliczeń przenośników taśmowych

EGZAMIN MATURALNY Z MATEMATYKI

PRÓG RENTOWNOŚCI i PRÓG

Objaśnienia do Wieloletniej Prognozy Finansowej na lata

IV. UK ADY RÓWNAÑ LINIOWYCH

OGÓLNODOSTĘPNE IFORMACJE O WYNIKACH EGZAMINÓW I EFEKTYWNOŚCI NAUCZANIA W GIMNAZJACH przykłady ich wykorzystania i interpretowania

(Tekst ujednolicony zawierający zmiany wynikające z uchwały Rady Nadzorczej nr 58/2011 z dnia r.)

API transakcyjne BitMarket.pl

Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego ZAPYTANIE OFERTOWE

Warunki Oferty PrOmOcyjnej usługi z ulgą

Strategia rozwoju kariery zawodowej - Twój scenariusz (program nagrania).

nie zdałeś naszej próbnej matury z matematyki?

Arkusz zawiera informacje prawnie chronione do momentu rozpocz cia egzaminu.

Rys. 1. Rysunek do zadania testowego

1. Rozwiązać układ równań { x 2 = 2y 1

MATEMATYKA. 1 Podstawowe informacje dotyczące zadań. 2 Zasady poprawnego zapisu odpowiedzi TEST DYDAKTYCZNY

Przykładowe stawki kosztów podlegających refundacji w ramach działania Funkcjonowanie LGD

Umowy o pracę zawarte na czas określony od 22 lutego 2016 r.

I. POSTANOWIENIE OGÓLNE

INFORMATYKA dla gimnazjum Opis założonych osiągnięć ucznia klasy trzeciej

U S T A W A. z dnia. o zmianie ustawy o ułatwieniu zatrudnienia absolwentom szkół. Art. 1.

SYSTEMY TRANSAKCYJNE (TraderTeam.pl: Rafa Jaworski, Marek Matuszek) Lekcja XIX

XIII KONKURS MATEMATYCZNY

PROCEDURA PRZEGLĄDU I MONITORINGU KODEKSU ETYCZNEGO PRACOWNIKÓW POWIATOWEGO CENTRUM POMOCY RODZINIE W KOŁOBRZEGU

UKŁAD ROZRUCHU SILNIKÓW SPALINOWYCH

Wykład 10. Urządzenia energoelektroniczne poprzez regulację napięcia, prądu i częstotliwości umoŝliwiają

Transkrypt:

! "# $ % "! &#"'% "! &( #'% "! ) *! " "! &#"' " "! &( #' #) # "! " "! $ $!$)

*# #! #!% #% +! #% # #,( #-)! #,-%! #,-) # +% %!% #) # "! $ "# $ #. "" "# $ # $ $$% ") #! /!,!/! "(-% % (!!! # / ( #) 0"! "$! "# ". "# # " " #) 1 #!% # "! +$,! " # -)

# #! ) 234523678. "# $ )! " "# #,"" $ #- "! (#( #!!!%! "!$# # $ %! "!$# # )

# # 9) *#! $!%! #, #-)

!," "-!! "$#, #-) *!(! " "! " #, #-)

: 7 # #! &# "#'% &#! ('% &'% &" #'. # "#! /#! #," "#-) ;# "#. "# "!$# # $ "!$# # #( "$!$! (. "# "!

<#. "#! #! * #. "# # "/ " "$ # =) # "#! "# # /, " -) >? "# #! "! (/! "# ""#)

@! " " # (/) * 0,A- ( # (/ " /B!($ # # /% ( " /B?!( # #% ## ( # (/ " ) *$! 0,A- $!!) ; # " (/! 0,A- "# "#!! " "#,! ( B "#" "# # (/-)

C 2 / ""/! #? (% # ()

2! "#!$ (/!!$ (/ "!!)! (/ "!! "! (/ #! "! # "%! (/! # ""#) *# "! (/! "#!?! /!% " "#) *#! "! % "!!%! "#!% "# "!! &D')

*# "!!!,!!-!) *#! "!!) 6! "!! "! = # "! &( #' #! "" "! &#/ ' "! (/ # # " "! "! "! & #' < 9 % # )

9 79 #!! "!!)

WY SZA SZKO A INFORMATYKI STOSOWANEJ I ZARZ DZANIA Z o ono algorytmów Z o ono pami ciowa algorytmu wynika z liczby i rozmiaru struktur danych wykorzystywanych w algorytmie. Z o ono czasowa algorytmu wynika z liczby operacji elementarnych wykonywanych w trakcie przebiegu algorytmu. Z O ONO CZASOWA ALGORYTMU - zale no pomi dzy rozmiarem danych wej ciowych a liczb operacji elementarnych wykonywanych w trakcie przebiegu algorytmu (podawana jako funkcja rozmiaru danych, której warto ci podaj liczb operacji) np. a) w alg. sortowania b belkowego dla listy o d ugo ci N: F(N) = liczba porówna par s siednich elementów (?) b) w alg. rozwi zywania problemu wie Hanoi dla N kr ków: F(N) = liczba przeniesie pojedynczego kr ka z ko ka na ko ek (?) c) w alg. wyznaczania najd u szej przek tnej wielok ta wypuk ego o N wierzcho kach: F(N) = liczba porówna d ugo ci dwóch odcinków-przek tnych (?) d) w alg. wyznaczania najta szej sieci kolejowej dla N w z ów sieci i M mo liwych do zbudowania odcinków: F(N, M) = liczba porówna kosztów budowy dwóch odcinków (?). W praktyce z o ono czasowa decyduje o przydatno ci algorytmów Poniewa trzeba rozwi zywa algorytmicznie coraz wi ksze zadania: - w komputerowych systemach wspomagania decyzji, - przy komputerowych symulacjach i prognozach z o onych zjawisk. rozwijane s komputerowe systemy czasu rzeczywistego: - steruj ce automatycznie z o onymi uk adami (transport, produkcja) Chcemy zmniejsza czas wykonania algorytmu! Przyk ad 1 Normalizacja wektora (tablicy jednowymiarowej) wzgl dem warto ci maksymalnej; dane wej ciowe zapisane w V(1), V(2),..., V(N) Algorytm 1 1. wyznacz w zmiennej MAX najwi ksz z warto ci ; 2. dla I od 1 do N wykonuj : 2.1. V(I) V(I) 100 / MAX Algorytm 2 1. wyznacz w zmiennej MAX najwi ksz z warto ci ; 2. ILORAZ 100 / MAX ; 3. dla I od 1 do N wykonuj : 3.1. V(I) V(I) ILORAZ Je li operacj elementarn jest wyznaczenie warto ci iloczynu lub ilorazu dwóch zmiennych, to F 1 (N) = 2 N i F 2 (N) = N +1 Przyk ad 2 Wyszukiwanie liniowe elementu z listy o d ugo ci N ; dane wej ciowe to lista i element do wyszukania: Algorytm 1 1. we pierwszy element listy ; 2. wykonuj: 2.1. sprawd czy bie cy element jest tym szukanym ; 2.2. sprawd czy osi gn e koniec listy ; 2.3. we nast pny element z listy a znajdziesz szukany element lub przejrzysz ca list WST P DO INFORMATYKI (6) J.Sikorski Strona 1 / 8

WY SZA SZKO A INFORMATYKI STOSOWANEJ I ZARZ DZANIA Algorytm 2 1. dopisz szukany element na ko cu listy ; 2. we pierwszy element listy ; 3. wykonuj: 3.1. sprawd czy bie cy element jest tym szukanym ; 3.2. we nast pny element z listy a znajdziesz ; 4. sprawd czy jeste na ko cu listy Je li operacj elementarn jest sprawd, to F 1 (N) = 2 N i F 2 (N) = N +1 Poprawianie z o ono ci algorytmu jest czym wi cej ni tylko zmniejszaniem czasu jego wykonania! Je eli np. porównujemy dwa algorytmy wykonuj ce to samo zadanie za pomoc jednej p tli ograniczonej, w której liczba iteracji N jest wprost proporcjonalna do rozmiaru danych wej ciowych, to liczby operacji elementarnych (czasy wykonania) tych algorytmów w funkcji rozmiaru danych wynosz odpowiednio: F 1 (N) = K 1 + L 1 N F 2 (N) = K 2 + L 2 N F1 do ich porównania mo emy wykorzysta iloraz N s N F N i wtedy spe nienie warunków: s(n) = 1 oznacza oby jednakow szybko dzia ania s(n) < 1 oznacza oby, e 1. algorytm jest szybszy. Ale zauwa my, e s(n) = 1 zachodzi tylko wtedy, kiedy K 1 = K 2 i L 1 = L 2, co oznacza, e oba algorytmy s praktycznie identyczne. A co mamy powiedzie, kiedy s(n) 1 dla N N 0, ale s(n) < 1 dla N > N 0. Który algorytm jest lepszy? Przyj to, e porównuj c algorytmy badamy warto ilorazu s(n) dla bardzo du ych warto ci N, czyli formalnie dla N. L1 Zatem o wyniku porównania czasów dzia ania dwóch algorytmów decyduje warto : lim s N ; jest to N L tzw. analiza asymptotyczna. 2 2 czas wykonania F 2 K 1 K 2 iloraz F 1 F 2 F 1 K 1 L 1 1 L 2 L 1 K 2 L 2 N 0 rozmiar danych N N 0 rozmiar danych N Dwa algorytmy o czasach wykonania F 1 (N) i F 2 (N) maj z o ono tego samego rz du, je li gdzie 0 < C < F1 ( N ) lim C, F ( N N 2 ) Spe nienie takiego warunku oznaczamy F 1 (N) = ( F 2 (N) ) Je li zachodzi F 1 (N) = ( F 2 (N) ), to tak e F 2 (N) = ( F 1 (N) ) Algorytm o czasie wykonania F 1 (N) ma nie wy szy rz d z o ono ci od algorytmu o czasie wykonania F 2 (N), F1 ( N ) je li lim C < N F ( N ) 2 Spe nienie takiego warunku oznaczamy F 1 (N) = O( F 2 (N) ) WST P DO INFORMATYKI (6) J.Sikorski Strona 2 / 8

WY SZA SZKO A INFORMATYKI STOSOWANEJ I ZARZ DZANIA Je li zachodzi jednocze nie F 1 (N) = O( F 2 (N) ) i F 2 (N) = O( F 1 (N) ), to F 1 (N) = ( F 2 (N) ). Je li zachodzi F 1 (N) = ( F 2 (N) ), to tak e F 1 (N) = O( F 2 (N) ). je li C = 0, to algorytm o czasie wykonania F 1 (N) ma ni szy rz d z o ono ci (ma lepsz z o ono ) od algorytmu o czasie wyk. F 2 (N); oznaczamy to symbolicznie F 1 (N) F 2 (N) F( N ) algorytm o czasie wykonania F(N) ma z o ono liniow, je li lim C, dla 0 < C < ; N N z o ono rz du N oznaczana jest symbolem (N) (ma on z o ono co najwy ej liniow, je li C < ; ozn. O(N) ). F( N ) algorytm o czasie wykonania F(N) ma z o ono kwadratow, je li lim C, dla 0 < C < ; N 2 N z o ono rz du N 2 oznaczana jest symbolem (N 2 ) (ma on z o ono co najwy ej kwadratow, je li C < ; ozn. O(N 2 ) ; zauwa my jeszcze, e N N 2 ). sytuacj, w której zachodzi warunek N : 0 F(N) C < oznaczamy F(N) = O(1). Dopiero zmniejszenie rz du z o ono ci algorytmu jest istotnym ulepszeniem rozwi zania problemu algorytmicznego! Je eli algorytm wykonuje ró n liczb operacji elementarnych w zale no ci od konkretnych danych wej ciowych (o tym samym rozmiarze) mo emy bada czas wykonania w najgorszym przypadku (czyli skupiaj c si na takich przypadkach dopuszczalnych danych wej ciowych, dla których ta liczba jest najwi ksza) - tzw. analiza najgorszego przypadku lub pesymistyczna. W przyk adach normalizacji wektora i wyszukiwania liniowego czas wykonania Algorytmu 1. wynosi F 1 (N) = 2 N : F 1 (N) = O(N) czas wykonania Algorytmu 2. wynosi F 2 (N) = N +1 : F 2 (N) = O(N) oba maj pesymistyczny czas wykonania O(N) - mog zdarzy si takie dane wej ciowe dla wyszukiwania liniowego, dla których trzeba b dzie przejrze ca a list o d ugo ci N (jest tak, kiedy szukanego elementu nie ma w ogóle na li cie) Czy mo na zaproponowa algorytm o lepszej z o ono ci dla wyszukiwania elementu na li cie? Szukamy zatem algorytmu o (pesymistycznym) czasie wykonania F(N) N. Wyszukiwanie binarne (przez po owienie) elementu z listy uporz dkowanej: Y 1, Y 2,..., Y N (dla ka dego i < j zachodzi Y i Y j ) start We ca list wej ciow TAK NIE Czy szukany element jest mniejszy od elementu rodkowego? Czy rodkowy element bie cej listy jest tym szukanym? NIE TAK Wypisz znalaz em We pierwsz po ow listy We drug po ow listy stop NIE Czy lista bie ca jest pusta? TAK Wypisz nie ma WST P DO INFORMATYKI (6) J.Sikorski Strona 3 / 8

WY SZA SZKO A INFORMATYKI STOSOWANEJ I ZARZ DZANIA Je li przyjmiemy, e operacj elementarn jest porównanie elementu szukanego z jednym z elementów listy ( rodkowym), to analiza z o ono ci polega na znalezieniu odpowiedzi na pytanie: ile razy jest powtarzana w najgorszym przypadku iteracja w algorytmie? Odpowied : 1 + log 2 N (log 2 N b dziemy oznaczali lg N) Zatem pesymistyczna z o ono algorytmu wyszukiwania binarnego wynosi O(lg N) (mówimy, e algorytm ten ma z o ono logarytmiczn ); lg N N Skala ulepszenia: N 1 lg N 10 4 100 7 1 000 10 10 000 14 1 000 000 20 1 000 000 000 30 1 000 000 000 000 40 1 000 000 000 000 000 50 1 000 000 000 000 000 000 60 O z o ono ci czasowej algorytmu decyduje liczba wykonywanych iteracji Koszt K 2 start (1) Koszt K 1 (2) Koszt K 4 Koszt K 3 (3) stop Ca kowity koszt czasowy w najgorszym przypadku: F(N) = K 1 + max( K 3, K 4 ) + K 2 lg N, a to oznacza F(N) = O(lg N) W a ciwo ci notacji O( ) ( tzw. rachunek O( ) ) F( N ) - je li F(N) jest funkcj z o ono ci algorytmu, to spe nienie warunku lim C <, jest zapisywane N g( N ) F(N) = O(g(N)) ; odczytujemy algorytm ma z o ono rz du nie wy szego ni g(n) lub krócej z o ono algorytmu jest O(g(N)) - równo w zapisie F(N) = O(g(N)) powinna by rozumiana w ten sposób, e funkcja F(N) jest jedn z funkcji, które spe niaj powy szy warunek lub precyzyjniej, e funkcja F(N) nale y do zbioru wszystkich funkcji spe niaj cych powy szy warunek - F(N) = O(F(N)), - O(O(g(N))) = O(g(N)), WST P DO INFORMATYKI (6) J.Sikorski Strona 4 / 8

WY SZA SZKO A INFORMATYKI STOSOWANEJ I ZARZ DZANIA - C O(g(N)) = O(C g(n)) = O(g(N)) (dla dowolnego 0 < C < ), X 1 T X X + 1 X > C O ( g( N) ) N O ( g( N) ) - O(g(N)) + O(h(N)) = O(g(N) + h(n)), O ( g( N) ) O ( h( N) ) O ( g( N)+ h( N) ) g( N ) - je li zachodzi lim 0, czyli g(n) h(n), N h( N ) to O(g(N)) + O(h(N)) = O(g(N) + h(n)) = O(h(N)) - O(g(N)) O(h(N)) = O(g(N) h(n)) = g(n) O(h(N)) = h(n) O(g(N)), X 1 X 1 T X X + 1 X > N O ( N. g( N) ) N O ( g( N) ) T X X + 1 X > h( N) O ( h( N ). g( N) ) N O ( g( N) ) - przy analizie z o ono ci w najgorszym przypadku (dla warunku zale nego od danych wej ciowych) zachodzi: N Czy warunek W jest spe niony? T O ( g( N) ), je li h( N) g( N) O ( h( N) ), je li g( N) = O ( h( N) ) O ( g( N) ) O ( h( N) ) WST P DO INFORMATYKI (6) J.Sikorski Strona 5 / 8

WY SZA SZKO A INFORMATYKI STOSOWANEJ I ZARZ DZANIA Z o ono czasowa przyk adowych algorytmów sortowanie b belkowe w pierwotnej wersji (zagnie d one iteracje): 1. wykonuj co nast puje N - 1 razy: 1.1.... ; 1.2. wykonuj co nast puje N - 1 razy: 1.2.1.... ; Ca kowity koszt czasowy w najgorszym przypadku wynosi z dok adno ci do sta ych: (N 1) (N 1) = N 2 2N +1 ; 1 2N N 2, czyli z o ono jest O(N 2 ) sortowanie b belkowe ulepszone (coraz krótsze przebiegi): Ca kowity koszt czasowy w najgorszym przypadku wynosi: (N - 1) + (N - 2) + (N - 3) +... + 2 + 1 = 0,5 N 2 0,5 N, czyli tak e z o ono jest O(N 2 ) sumowanie zarobków pracowników - z o ono O(N) znajdowanie najwi kszej przek tnej w wielok cie wypuk ym metod naiwn - z o ono O(N 2 ) znajdowanie najwi kszej przek tnej w wielok cie wypuk ym metod jednokrotnego obiegu z par prostych równoleg ych - z o ono O(N) rekurencyjny algorytm dla problemu wie Hanoi procedura przenie N ; 1. je li N = 1, to wypisz ruch i koniec; 2. w przeciwnym razie (tj. je li N > 1) wykonaj co nast puje: 2.1. wywo aj przenie N 1 ; 2.2. wypisz ruch ; 2.3. wywo aj przenie N 1 ; Oznaczmy nieznany koszt czasowy przez T(N) i u ó my równania, które T(N) musi spe nia (tzw. równania rekurencyjne): T(1) = 1 T(N) = 2 T(N 1) +1 Spe nia je koszt T(N) = 2 N 1, czyli z o ono jest O(2 N ) sortowanie drzewiaste bez samoorganizacji drzewa: ma pesymistyczn (w najgorszym przypadku) z o ono O(N 2 ), bo wprawdzie lewostronne obej cie drzewa ma z o ono liniow O(N), ale konstrukcja binarnego drzewa poszukiwa ma pesymistyczn z o ono kwadratow 7 7 15 12 11 8 10 12 15 11 8 sortowanie drzewiaste z samoorganizacj drzewa: ma z o ono O(N lg N), co daje wyra n popraw sprawno ci algorytmu sortowania w porównaniu z algorytmem b belkowym N N 2 N lg N 10 100 33 100 10 000 664 1 000 1 000 000 9 965 1 000 000 1 000 000 000 000 19 931 568 1 000 000 000 1 000 000 000 000 000 000 29 897 352 853 sortowanie przez scalanie (rekurencyjne): procedura sortuj-list L; 10 WST P DO INFORMATYKI (6) J.Sikorski Strona 6 / 8

WY SZA SZKO A INFORMATYKI STOSOWANEJ I ZARZ DZANIA 1. je li L zawiera tylko jeden element, to jest posortowana; 2. w przeciwnym razie wykonaj co nast puje: 2.1.... ; 2.2. wywo aj sortuj-list po owa L ; 2.3. wywo aj sortuj-list po owa L ; 2.4. scal posortowane po owy listy L w jedn posortowan list ; Oznaczmy nieznany koszt czasowy przez T(N) i u ó my równania rekurencyjne, które T(N) musi spe nia : T(1) = 0 T(N) = 2 T(0,5 N) + N Spe nia je koszt T(N) = N lg N, czyli z o ono jest O(N lg N) Sortowanie przez scalanie jest jednym z najlepszych algorytmów sortowania (cho ma nie najlepsz z o ono pami ciow O(N) ) rednia z o ono Analiza najgorszego przypadku lub analiza redniego przypadku W analizie redniego przypadku istotn rol odgrywaj za o enia o rozk adzie prawdopodobie stwa w zbiorze dopuszczalnych danych wej ciowych. algorytm redni przyp. najgorszy przyp. sumowanie zarobków O(N) O(N) sortowanie b belkowe O(N 2 ) O(N 2 ) sortowanie drzewiaste z samoorganizacj drzewa O(N lg N) O(N lg N) sortowanie przez scalanie O(N lg N) O(N lg N) Quicksort O(N lg N) O(N 2 ) redni koszt czasowy algorytmu Quicksort wynosi tylko 1,4 N lg N Dolne i górne ograniczenia z o ono ci problemów algorytmicznych Czy mo na skonstruowa jeszcze lepszy algorytm? z o ono poprawnego algorytmu znajduj cego rozwi zanie danego problemu ustanawia górne ograniczenie z o ono ci dla tego problemu. dolne ograniczenie z o ono ci problemu (otrzymane w wyniku analizy samego problemu) okre la zakres dalszej poprawy rz du z o ono ci algorytmów rozwi zuj cych ten problem poprawa Górne ograniczenia dla z o ono ci problemu P Algorytm dla problemu P o z o ono ci O(N 3 ) poprawa Najsprawniejsze rozwi zanie problemu ~ Algorytm dla problemu P o z o ono ci O(N 2 ) Z o ono czasowa w a ciwa problemowi P (?) Dolne ograniczenia dla z o ono ci problemu P Problemy zamkni te i luki algorytmiczne Dowód, e ka dy algorytm b d cy rozwi zaniem problemu P ma z o ono co najmniej (N lg N) Dowód, e ka dy algorytm b d cy rozwi zaniem problemu P ma z o ono co najmniej (N) u ci lenie u ci lenie problem dolne ogr. górne ogr. WST P DO INFORMATYKI (6) J.Sikorski Strona 7 / 8

WY SZA SZKO A INFORMATYKI STOSOWANEJ I ZARZ DZANIA przeszukiwanie listy nieuporz dkowanej (N) O(N) przeszukiwanie listy uporz dkowanej (lg N) O(lg N) sortowanie (N lg N) O(N lg N) wyznaczanie najta szej sieci kolejowej (N) O(f(N) N) 1) 1} f(n) - bardzo wolno rosn ca funkcja, np. dla N = 64 000 ma warto 4 - problem zamkni ty - problem z luk algorytm. Przyk ad analizy z o ono ci algorytmu Problem wyznaczania pow oki wypuk ej dla zbioru N punktów na p aszczy nie: algorytm naiwny ma z o ono O(N 3 ); trzeba dla ka dego z N punktów dobiera pozosta e N 1 do pary, która wyznacza prost i dla ka dej z tych prostych sprawdzi czy N 2 punkty le wszystkie po tej samej stronie prostej. algorytm o ni szej z o ono ci (?): 1. znajd punkt najni ej po o ony - P 1 ; 2. posortuj pozosta e punkty rosn co wed ug k tów tworzonych przez odcinki P 1 PJ z lini poziom przechodz c przez P 1 - powstanie lista P 2,...,P N ; 3. do cz do pow oki punkty P 1 i P 2 ; 4. dla J od 3 do N wykonuj ; 4.1. do cz do pow oki punkt P J ; 4.2. cofaj c si wstecz po odcinkach aktualnej pow oki, usuwaj z niej te punkty P K, dla których prosta przechodz ca przez P K i P K-1 przecina odcinek P 1 PJ, a do napotkania pierwszego punktu nie daj cego si usun ; krok 2. kolejne iteracje w kroku 4. 5 6 7 9 10 11 13 14 5 6 7 9 10 11 13 14 4 2 3 8 12 15 4 2 3 8 12 15 1 Podsumowanie z o ono ci algorytmu krok po kroku: Krok 1. O(N) (wybór pierwszego) Krok 2. O(N lg N) (sortowanie) Krok 3. O(1) (do czenie 1 odcinka) Krok 4. O(N) (do czanie z usuwaniem) Razem O(N+N lg N+1+N) = O(N lg N) 1 WST P DO INFORMATYKI (6) J.Sikorski Strona 8 / 8

! " # $ % # & ' % ( ) *"+ " $ %, - *. + " $ % / # #' 0 #" 0 % # -. ' #" '# '# " ' 1 # # 2 % #' #' (3 4. #4! (3 4 " # # 4! # # % # 5 4 &. #4! " # $ " # %& %' & ( ) * " +, -./ *. 2 % #' 3#' # 4!. # 4 & 3 4 1 ' # # 4. # # 4 ) 1 ' # # 4, 1 # 4 0. +, " 2# 1! 1 #1 #' & # #' ) %",.#1 ' #' ' 1! ' / 6 #1 ' 78 % % #'." 9. : ; 1 #. 1 # %1 % - % 0 3 '# # 0 3 # < # 2 " 0 3 # 7% " 8 3 % 7% # ".0 #="8 3 > 7 ' 3 # ' ' #' 8? # # 0 #? %" 3 / -- 7 / = -= -0'8 2'. # @!A 0 3 " B 0 0 #. % #1 0 ' #

! # # % #1 0 # ' #" "0. # & # 3 % #1 0 # ' #" "0. ) ;# # % #1 0 ' #" "0. 4 * *. C ' '.. - '# # '# 5) " " B 0 "0 '%"0 " " 0 #0 0 700 8! 0 >0 70 # # 0 # 0 1 (-D8 6". % ". 8 #. # # # # > % ' # 8 #. # # # # > % ' ' # 8. # # # # > " 7 #!8 # > "?# 7. E-EC ' = = 8 # '0.#0 = C # 78 % 7#8 # 5. 20 #1 % #" % % " / 7. D-EC ' # = 8 # '0.#0 = 9 ' " % 78 % 7#8 #" % #". # %. " D % # %0 #"?. # % % # "# #0 0 >0 7# # >! # >8 # # 0 = # > #" ' 78 ' 78 (! " " 6./!78 0 8 #. % # # # # > ' % 8 #. % # # # # > ' ' % 8 # # " # (-D % % % ' 9% % % ' 7F ' # 8 8 # # 8 # 1 " B % ' 0 #" 3 0 %?. % 3 # # 7 8 3 # 7 8 3 # > 7 #" 08 3 # > 7 # '8 C #'

5 # > 7 '= 8 ' %! 5 % 7 '= '"8 & % # #. #1 ) # # #.. 70 # > 0 1 (-D8 % '"# % # '% 9 # 00. # #. '%0 ' % # ' % 9 # #" #'%0 9 ".. 0 # '" 5 # 9 # /; "' " '! GH(G " 0% #1 # " # 29 B "' %" '!?. %. 1 #! " 3.?5 0% 7 '= '"8 3 9 #' 0 ' D1 0% 5 7 '= #8 3 C ". 5 #5 #' 4: * ; <=> %1 # 5 0 1 # 1 ' 5 ' (. # # # " ' #. #. 3# # ' # 3# # '. # 5) 7 ; B C % #' '# #' ' CGFBI ; # ; "1! % > ; # # % > ; 2 '# #' '. % > 3 # 1 > 3 9 /; # #. J 1. ' # ' ' 2 # #'. '= #0 %5 0 * " ' / ; '# K ' ' # /. '#1 3 7 8 F #' 0 #" # 0 #" 3 '# '% 7 8 /0 % #' 9 5 7 # '8

! #' # ' *+ ' # 0% *+ # " # 9 " # ' *+ 3 '# 7 8 /0 % #' ( # *+! 9 ' # ' & #' ' # *+ ' 0 ' " 7 *+8 *+ ' # 9 " ' # *+ ' ' ' * + J #' 0 #0 #" ' " 0 # ' = # * ; G# % ' 3# 7#= ' ' # 0 " #.1 '" 0 #= %5 ' 8 3% # 7 " '" # # 8 3% 7 0 0 " ' 0..1 0 4 = 0 0 " " % 1 '"#0 4 0 0 8 3 7 " " 0 * + # * + # %1 % 0.58 9 ' ;?# 5 ' F %. %' ' ' ' '.' ' 0 #0 LL #. ' 0 0 - % '"#0 ' % # 0 ; #. ' 0 ' ' ' # # '" #0 (! %; & J #' * + #' '# 0 # # ' # % * + #' # % ( # #'%0 #0 0% '# # # # # ' # - # '# #. 0 " 0 1 # 3 # # # # 3 '.. 3 0! % ;'& J *#.+ '. # #. 1 % #. "1 #1 ' ; #' # % *#.+ #' # ( # 3# # % % " % 0# 0 #" " #" ' # " ' # ' # 0# # # C % ' #' # /C6;MF D-/;N D # # #! # # D D! % /C6;MF D

% /C6;MF D! # # D D! # & "1 % 1! %"*& - "0. 1 0 # #" 0 % 5 0% ' *% #' ' '. + F = # ' #" % *0%+ #' 5. 7# #' ' '=8 J 1 " %0 5 5 0 " ". 1 0# % 0 0 %> " C #'!. % 0 " %> 3 5 % ". # " % J ' 5 '. %5 0 " %> 7 # 8 ( 0 " ' 5 ' % %> 2? " * / # #' # # # 0 #" ( #' # " #" 7 '! #8 '"! #0 7 ' ) #8 0# ' # # ( ' #' # 9 " "0 0 7 #0 '"8 % 0 %! # ' " "0 0 #" '" 0 ' ' ' ' # " C % #' /C6;MF # D4 # # # #! # # D D D! % /C6;MF # D % /C6;MF # D! # # D D! # D 7 8 &"1 % 3! % & J #' *' + " " *# # ' ' 5' #. =' ' # 5 # ' ' 5'+ % *+ #' ". % %> '= 7# ' 8 9 5 0% 0 0 #" " 0# # # " #1 # = 5 # '"# =' '= 5 # ' =#' *+ #. '= ' 0.#0 "' " "0 # 4 *; * / " ( %" % 7%8 %.' ' 3. =7K@ O LL8 3 =7K@4 O4 LL8

? 3 # # # 3 # ' # # % % 3 # #. % % %.' ' 3 #. 5 =7K@4 O4 LL8 1 L? 3' # #' " 3 % #. 0 1 '.0 % #' #' %' ' 3 #. #' # % *+ # * * F. 1 #. 1 5? 3#' 1 3# 0 0 0 ' 3. 1 1 0 3 % '> ' %' 1 1 % #' 9 %' #' 3 #' ># '= % # " 0? 3 #' # 0 #0 0 3 ' 3 ' # #' 5 ' % 5 ' ; *$ ;.. #' % '# ' 5'.# #.0 0 %0 # 5 % 5 #' # #.0 #5 " 5 '# ' 5' 6". #' # 5 #' 9= 1 #' 1. # 5 # 0 0 0 0 9 ' (". #' 7J " #' #' " #0 F#. # ".' 0 0 #' ' #. J #' " '. ' 0 % '# # ' #' ' # 1 8 2.". # % #'" 7J." #' # #'." 0 " % ". # '#.% # # # ' (. #'. 1 " 1 " #" 8. *'./ 2%.1 #'". 1 3 3 2%.1 #.1 # % #' 7# # 08 0 0 0 #'

2%.1 #.1 # #0 0 ' #' # 0 0 #' %. '... #' @ $ ' *'./ B #' 0 E7(8 E!7(8 %.1 ' ' # F Lim N F 1 2 ( N ) ( N ) = C F# K @ #' E7(8. %. F# K #' E!7(8. %. F# @O O %.1 ' ' (: @; *'. C %. #' C7#'(8 #' E7(8 %.1 #'.# # E7(8P( @ 0: @; *'. C %. # E7(8KC7(8 #' E7(8 %.1 #.# # E7(8P(K ' @O O 1: @; *'. C %. E7(8KC7(! 8 #' E7(8 %.1.# # E7(8P(! K ' @O O 2: @; *'. * C %. % E7(8KC7! ( 8 #' E7(8 %.1 %.# # E7(8P! ( K ' @O O 39 A+!,B?++!,, @ A+!, 2 E7(8KC7'7(88 % # E7(8P'7(8K ' @O O. 1 #' %.1 '7(8 # #' C7'7(88 6"1 E7(8KC7'7(88 1 ". = E7(8 = " %. #. #. 0 = %0. 4? " * *'./ B% #' ' # " ' # # ' # F.# = #. " % # ' 1 7 # 8 9 % # " # ' # F# " =# % # 9 #' = # 0. ' # 2%.1 ' #' E7(8KC7#'(8 ' ( #. # #" B%'1 # 3!@ #" 7, "58 3@@@@@@ #" 7!@ "58 (5 " *'./ 9 # ' 3 ' C7(! 8 3 7# 8 C7(8 3 # C7(! 8 3 ' C7(Q#'(8 3 7 #8 C7(Q#'(8 3 R C7(Q#'(8 3 ' C7(! 8 (9 ' ; *'.. 9 # '' %.1 #' 0 0 7 '# # # "' 8 0 #' 9 # ' 1 % % # ' #1 %. #' 9 #0 ' # ' %. % 5 #0 0 0

F.# 1. '' #' # %.1 '. 1 ' ' ( ; *'. # # # "0 # '" ' %. 0 ' ' % 2. '" ' %. ' #' ' # ' %. F# # '" '1 0 " " # #'0 ( : * ;" *'. * % #'" 0 %. # 3 " 3 # '" ' %. C7(8 3 # # '" ' %. C7#'(8 % # #'0 3 # #' ' '" ' %. C7(! 8 # C7(8 (( *'./ ' C # 9. : # '" ' %. " 7" # #' ' '8 C7(! 8 (09 $ ' @ *'. C. 3 = %.1. = '" ' D # ' # (19 $ ' *'./ # %.1 #.# = ' %. ' '" (? # '? # E7(8KC7(? 8 (2 ;!: - *" : *?# #" ( %0 # 0 00 3. # # %1 ' 3# 0 # 7%8 3#.' # ' 7#'8 3#.'. ' %' 3 # 7# # 01 ' #>1 #.. 1 # #.. # 01 ' # # 0. ' 8 % #" ( %0 3. :# 3%. 7% %. =' '8 3#. 3% # (3 * $ '!: - * ' / *'. S. 01 #" ( %0 #' %. # #. ' 9 #.. # #. # %1 (4 *!: - * *'. S. 01 #'" # ( % # ".. ' 9 =.. # # # %1 # 05! '" S%" 0 #'" %.. # 0 ' #' # %' # ' ; *+ #' #'" 0 % #. # 3# 7( %8 #. # 1 % % ' #. 0 0% '= J ' "% / K P #

9 ' # #. /, %.1 ' # C7( & 8 0? * # # "'.' %' #' # ## F# # # ' # '# % # '#' # # #' # *+ # *+ 0 1. # #.. > # %.. # 0 1 B#.' #' 7' # = 1 '8 " ' # 5 # " 0 0 # "0 #' %% 51 # % > 09 9 # # 1 > *+ # *+ #' 6 D # 0 0 T F #. # # #" '#0 # #' " # =% 1 > 0 9 >$ *' J ;' # # # =' 0 = 1 #'" J ;' % 35' #= # 35' " 35 # " 7. ". 1 #8 30 '% 7'% "8 3' 1 7 ' ' 18 9 #. ;'. 1 3 ' 3 # # '% 3 3 '% = 0( > / ' 1 " '= "' 0% 0. #>1 B ". '#0 "?> U 7P 8 ' P # # # # 1 # 1 7P #8 # = *+ *+ > # # 7P 8 # = *+ *+ > # 00? 9""D> *'. " J ;' = 1. = # # 6. 1. # " = 1 # C7=7(88 ". ;' " ' #. C77=7(888 # # = # 019 5 ' ;' 7 % ;'8 7% # 8 # 73"8 '% 6". #'. ' '%. 1 # %.# 7 ' 0. '% "1 " %8 / " % ;' # ' 1 0 ' B' ". ' "0 #" OV 5 #0 0

029 ' *'/ " 5. 1 #5 = #1 9 ' '5 0 # 7. 1 "0. %8 = 7 '% "1 0 08.# 1 %5 0. 1 # 03 * " 1 # 3# # 3# (' 1 #.# # '#. %.1 %5 #" " / # =' %5 3.. 1 %. % # 7 #. 8 # " 0 3 "#'% '"# # #' B % #' 7#8 # = #' 0 7(B C6 (C; ((B 8 04. ; " " *' + "" @@, 2" " " ' #. 0 0 " 2. 1 1 # # % #' ' # * 0#'+ F # 0 ' 1 9 % *050 =#="+ % B# ( =#=" # (P!L %. =#=" "0 #1 15. ; " " *' 2" 0 0 "%. " # 0 ". " '. ' #' % * 0#'+ ' ' 0#0 %% ' 0#0 0 1 ' 0 ' # # " 9 # = 0 '. '. 0# "'% 1 1. ; * " " *' 2'% "%. " " ' ' #' % * 0#'+. ' #0 " 0# 0 1 # = 1. ; " " *' '% ' % # #' ' * 0#'+ % '% 5" 0# # % 0 9 *050 =#="+ % '% =#= 0# "0 %