Algorytmy i struktury danych

19
Algorytmy i struktury danych (C) 2003 – 2008 by Kazimierz Jakubczyk

description

Algorytmy i struktury danych. (C) 2003 – 2008 by Kazimierz Jakubczyk. Literatura. Banachowski L., Diks K., Rytter W.: Algorytmy i struktury danych , WNT, Warszawa 2003 (wyd. 4, pseudo Pascal) - PowerPoint PPT Presentation

Transcript of Algorytmy i struktury danych

  • Algorytmy i struktury danych(C) 2003 2008 by Kazimierz Jakubczyk

  • LiteraturaBanachowski L., Diks K., Rytter W.: Algorytmy i struktury danych, WNT, Warszawa 2003 (wyd. 4, pseudo Pascal)Cormen T.H., Leiserson Ch.E., Rivest R.L.: Wprowadzenie do algorytmw, WNT, Warszawa 2000 (wyd. 3, pseudo Pascal)Wirth N.: Algorytmy + struktury danych = programy, WNT, Warszawa 2002 (wyd. 6, jzyk Pascal)

  • Literatura - cd.Knuth D.E.: Sztuka programowania , WNT, Warszawa 2002 (3 tomy Algorytmy podstawowe , Sortowanie i wyszukiwanie , Algorytmy seminumeryczne , asembler)Aho A. V., Hopcroft J. E., Ullman J. D.: Algorytmy i struktury danych, Helion, Gliwice 2003 (jzyk Pascal)Aho A.V., Hopcroft J.E., Ullman J.D.: Projektowanie i analiza algorytmw , Helion, Gliwice 2003 (pseudo Pascal)

  • Literatura - cd.Drozdek A.: C++. Algorytmy i struktury danych, Helion, Gliwice 2004Neapolitan R., Naimipour K.: Podstawy algorytmw z przykadami w C++, Helion, Gliwice 2004Wrblewski P.: Algorytmy, struktury danych i techniki programowania, Helion, Gliwice 2003 (wyd. 3, jzyk C++)

  • Literatura - cd.Harel D., Feldman Y.: Rzecz o istocie informatyki. Algorytmika, WNT, Warszawa 2008 (wyd. 4)Syso M.M.: Algorytmy, WSiP, Warszawa 2002 (wyd. 3, opisy w postaci listy krokw, niekiedy Pascal)Jakubczyk K.: Wprowadzenie do algorytmw i struktur danych, Wydawnictwo Politechniki Radomskiej, Radom 2005, 2007 (pseudo Pascal, Delphi)

  • Definicje algorytmucile okrelona procedura obliczeniowa, ktra dla waciwych danych wejciowych produkuje dane dane wyjciowe zwane wynikiem dziaania algorytmuCig krokw obliczeniowych prowadzcych do przeksztacenia danych wejciowych w wyjcioweSposb rozwizania konkretnego problemu obliczeniowegoPrzepis opisujcy krok po kroku postpowanie prowadzce do rozwizania postawionego problemu

  • Cechy algorytmuSkoczono algorytm powinien si zawsze zatrzyma po skoczonej liczbie krokwDobre zdefiniowanie kady krok algorytmu powinien by opisany precyzyjnieDane wejciowe algorytm ma zero lub wicej danych wejciowych (dane)Dane wyjciowe algorytm generuje jedn lub wicej danych wyjciowych (wynik)Efektywne zdefiniowanie operacje zawarte w algorytmie powinny by na tyle proste, aby mona je byo wykona dokadnie i w skoczonym czasie

  • Poprawno algorytmuAlgorytm jest poprawny, gdy dla kadego egzemplarza problemu zatrzymuje si i daje dobry wynik, czyli gdy wykonuje postawione przed nim zadanieAlgorytm niepoprawny moe si nigdy nie zatrzyma albo po zatrzymaniu da zy wynikAlgorytmy numeryczne problem poprawnoci numerycznej rozwizania (bdy zaokrgle dziaa na liczbach rzeczywistych)

  • Metody zapisu algorytmwOpis sownyLista krokwTablica decyzyjnaSchemat blokowy (sie dziaa)PseudojzykProgram komputerowy

  • Przykad tablicy decyzyjnejPada deszczJest zimnoWe parasolW paszczWyjd z domuTTTTNNNNxxxxxxxxWarunkiOperacjeMoliweIstniejce

  • Przykad schematu blokowegoPada deszczJest zimnoWe parasolW paszczWyjd z domu

  • Analiza algorytmwCzy dany problem moe by rozwizany na komputerze w dostpnym czasie i pamici?Ktry ze znanych algorytmw naley zastosowa w danych okolicznociach?Czy istnieje lepszy algorytm od rozwaa-nego? A moe jest on optymalny?Jak uzasadni, e stosujc dany algorytm, rozwie si zamierzone zadanie?

  • Zoono obliczeniowaZoono obliczeniowa algorytmu ilo zasobw komputerowych potrzebnych do jego wykonaniaZasoby komputerowe czas wykonania i wielko zajmowanej pamici, zalene od rozmiaru danych nZoono czasowaZoono pamiciowa

  • Rodaje zoonociZoono pesymistycna wielko zasobw komputerowych przy najgorszych danych wejciowych (worst case)Zoono oczekiwana (rednia) wielko zasobw komputerowych przy typowych danych wejciowych (avarage case)Operacje dominujce charakterystyczne dla danego algorytmu operacje (zwykle wykonywane wielokrotnie w zalenoci od rozmiaru danych wejciowych n) takie, e cao pracy wykonanej przez ten algorytm jest w przyblieniu proporcjonalna do liczby wykona tych operacji

  • Notacja asymptotyczna Of(n) = O(g(n))

  • Notacja asymptotyczna f(n) = (g(n))

  • Notacja asymptotyczna f(n) = (g(n))

  • Typowe zoonoci czasowelog n logarytmicznan liniowan log n liniowo-logarytmicznan2 kwadratowa (wielomianowa stopnia 2)n3 szecienna (wielomianowa stopnia 3)2n wykadnicza 2nn! wykadnicza n!

  • No to do analizy algorytmw!