Klasyfikacja algorytmów


Zagadnienia
  • Klasyfikacja algorytmów
  • Przydatne narzędzia/oprogramowanie

  • Pakiet NetBeans

  • edytor kodu przykładowy


    Klasyfikacja algorytmów

  • Sekwencyjny
  • algorytmy z rozgałęzieniami
  • Cykliczne
  • Mieszane



  • Podział algorytmów ze względu na przeznaczenie

  • algorytmy numeryczne (matematyczne) — wykonują obliczenia numeryczne;
  • algorytmy przeszukujące — badają określony zbiór danych w celu wyszukania określonego elementu lub elementów;
  • algorytmy porządkujące — ustawiają wybrane dane według określonego kryterium;
  • algorytmy rekurencyjne — rozwiązują zadanie, które można podzielić na mniejsze części będące kopią wzorca:
  • algorytmy szyfrujące / deszyfrujące — służą do szyfrowania danych:
  • algorytmy kompresji danych — Optymalny kompresji zapisu danych.
  • Podział algorytmów ze względu na sposób konstruowania

  • „dziel zwyciężaj" — problem jest dzielony na kilka mniejszych problemów. które znów są dzielone na mniejsze — a2 do momentu, gdy otrzymamy problemy łatwe do rozwiązania; mniejsze problemy rekurencyjnie, a następnie ich rozwiązania Są łączone, aby OtrzvnaĆ rozwiązanie zadania początkowego; to z najlepszych metod rozwiązywania zadań; przykładem może tu znajdowanie nai- mniejszego elementu zbioru CZY liczb:
  • pmgramowanie dynamiczne — metoda podobna do poprzedniej, czyli problem jest dzie- lony na kilka mniejszych. a ich rozwiązania wykorzystuje Się do problemu wyjściowego; można je stosować, gdy podproblemy nie są niezależne, czyli kiedy podproblemy mogą zawierać te same podproblemy;
  • metoda zachłanna — wykonuje takie działanie, które w danej Chwili wydaje Się naj. korzystniejsze; ten rodzaj algorytmu nie ocenia, CZY w kolejnych krokach jest Sens wykonywać dane działanie. tylko podejmuje decyzje lokalnie optymalne:
  • poszukiwanie i wyliczanie — zbiór danych jest przeszukiwany aż do znalezienia rozwłazama;
  • algorytmy heurystyczne — algorytm, który nie zapewnia ływności rozwiązania zadania Optymalnego, tylko daje dobre rozwiązanie w określonym czasie.
  • Gdy tworzymy algorytm, a potem na jego — program komputerowy, musimy pamiętać o oszczędności pamięci i Czasu Obliczeń. W celu algorytmu wprowadzono pojęcie złożoności obliczeniowej która jest ilością Cza- Su niezbędnego do rozwiązywania problemu w Od liczby danych wejściowych. To pojęcie dotyczy złożoności pamięcimvei i czasowej. Złożoność pamișiowa zależy od wielkości pamięci komputerowej potrzebnej do wyko. nania algorytmu w postaci programu komputerowego. ZbżonoŚĆ Czasowa pozwala na Określenie Czasu do wykonania algorytmu.

    Istnieją następujące metody zapisu algorytmu:

  • słowny opis — mało konkretny sposób opisu algorytmu; rozpoczyna się dyskusją, w jaki sposób można rozwiązać dane zadanie; pozwala na wybór metody rozwiązania danego problemu;
  • lista kroków — dokładny sposób opisywania obliczeń i ich kolejności; poszczególne kroki zawierają opis operacji, które maja być wykonane przez algorytm; kroki Są rowane zgodnie z kolejnością ich wykonywania;
  • schemat blokowy — najpopularniejszy sposób, który Opiera się na blokach Oraz połączeniach między nimi; tu zapisane operacje, które mają być wykonane, a połączenia za pomocą Strzałek wyznaczają ich wykonywania;
  • drzewo algorytmiczne (drzewo — w drzewie algorytmu można wyróżnić korzeń — wierzchołek, w którym rozpoczynają sie działania algorytmu, wierzchołki pośrednie, w których są umieszczane operacie wykonywane w algorytmie, oraz wierzcholki końcowe (tzw. liście), które odpowiadają różnym wynikom zakończenia obliczeń w algorytmie;
  • pseudokod — przy wykorzystaniu tego sposobu rezygnujemy z reguł składniowych danego języka programowania na rzecz czytelności instrukcji;
  • język algorytmiczny (język programowania) —najbardziej ścisły i zrozumiały dla komputera opis algorytmu; algorytm zapisany w języku programowania nazywamy programem.
  • PRZYKŁAD 1

    Rozważmy zadanie polegające na wyświetleniu w postaci ciągu rosnącego trzech liczb a, b, c. Drzewo algorytmiczne tego zadania będzie miało postać jak na rysunkiu poniżej:




    SPRAWDŽ SWOJĄ WIEDZĘ



    Co to jest algorytm? Omów podział algorytmów Ze względu na przeznaczenie. Omów podział algorytmów ze względu na koleino" działań. Omów podział algorytmów ze względu na sposób wykonywania operacji. Z czego składa się każdy algorytm? Wymień cechy algorytmu. Wymień i omów poszczególne bloki Służące do tworzenia schematów blokowych. . Na Czym polega zasada działania algorytmu „dziel i zwyciężaj"?


    SPRAWDŻ SWOJE UMIEJĘTNOŚCI



    I. Utwórz drzewo algorytmiczne i schemat blokowy algorytmu rozwiązującego dowolne równanie kwadra towe. 2. Utwórz algorytm w postaci listy kroków i schematu blokowego wyznaczający n-tą połę. gę liczby x (n i x Są liczbami naturalnymi). 3. Utwórz schemat blokowy algorytmu wyznaczającego największy wspólny dzielnik dwóch liczb całkowitych. Utwórz schemat blokowy algorytmu wypisującego liczby dwucyfrowe. 4. Utwórz drzewo algorytmiczne oraz listę kroków algorytmu pobierającego kolejne liczby jednocyfrowe, aż ich suma przekroczy 30. Utwórz schemat blokowy algorytmu wypisujący n elementów Ciągu Fibonacciego G. (wzór na kolejne wyrazy ciągu znajdź w zasobach Internetowych). . Utwórz schemat blokowy algorytmu wyszukujący trójki pitagorejskie z podanego przedziału.


    ...






    ...






    Test wiedzy



    |
    		
    			Zadanie 1.
    			
    		


    Podsumowanie



    ...



    Przykładowe rozwiązania oraz komentarze do wybranych ćwiczeń i zadań


  • Rozwiązania do ćwiczeń z tej strony

    ...