Charakterystyka algorytmu, do czego służy, części, przykłady

1809
Alexander Pearson
Charakterystyka algorytmu, do czego służy, części, przykłady

ZA algorytm jest to zestaw instrukcji przeznaczonych do wykonania określonego zadania. Oznacza to, że jest to systematyczna procedura, która w skończonej liczbie kroków prowadzi do odpowiedzi na pytanie lub rozwiązania problemu. Przykładem algorytmu jest wyszukiwarka Google, w której wstawiając słowo daje kilka wyników w postaci stron internetowych.

Może to być złożony proces, taki jak odtwarzanie pliku muzycznego, lub prosta operacja, na przykład dodanie dwóch liczb. W programowaniu komputerowym algorytmy są tworzone jako funkcje. Te funkcje to małe programy, do których może odwoływać się większy program.

Aplikacja do przeglądania obrazów może zawierać bibliotekę funkcji, z których każda wykorzystuje określony algorytm do reprezentowania różnych formatów plików obrazów..

Program do edycji obrazów może zawierać algorytmy przeznaczone do przetwarzania danych obrazu. Niektóre przykłady to przycinanie, zmiana rozmiaru, wyostrzanie, rozmywanie, redukcja efektu czerwonych oczu i wzmacnianie kolorów..

Indeks artykułów

  • 1 Charakterystyka algorytmu
    • 1.1 Jasność i precyzja
    • 1.2 Dobrze zdefiniowane dane wejściowe
    • 1.3 Dobrze zdefiniowane wyniki
    • 1.4 Skończoność
    • 1.5 Wykonalne
    • 1.6 Niezależność języka
    • 1.7 Wydajne programy
  • 2 Do czego służy algorytm?
    • 2.1 Kompresja plików
    • 2.2 Szyfrowanie danych
  • 3 Jak działa algorytm?
    • 3.1 Przykładowy przypadek
  • 4 części algorytmu
    • 4.1 Pozyskiwanie danych wejściowych
    • 4.2 Obliczenia
    • 4.3 Wybór
    • 4.4 Iteracja
    • 4.5 Raport wyników lub wyników
  • 5 Rodzaje algorytmów
    • 5.1 Algorytm rekurencyjny
    • 5.2 Algorytm dziel i zwyciężaj
    • 5.3 Algorytm programowania dynamicznego
    • 5.4 Algorytm sił brutalnych
    • 5.5 Algorytm cofania
  • 6 Przykłady algorytmów
    • 6.1 Algorytm rekurencyjny
    • 6.2 Algorytm programowania dynamicznego
    • 6.3 Algorytm cofania
    • 6.4 Różne przykłady
  • 7 Referencje

Charakterystyka algorytmu

Przejrzystość i precyzja

Algorytm musi być jasny i jednoznaczny. Każdy z twoich kroków lub działań musi być precyzyjnie zdefiniowany, rygorystycznie jasny pod każdym względem i musi mieć jednoznacznie tylko jedno znaczenie..

Dobrze zdefiniowane dane wejściowe

Algorytm ma zero lub więcej danych wejściowych, pobranych z określonego zestawu obiektów. Jeśli algorytm wskazuje, że należy przyjąć dane wejściowe, te dane wejściowe powinny być dobrze zdefiniowane.

Dobrze zdefiniowane wyniki

Algorytm zawsze ma jedno lub więcej wyjść, które są powiązane z danymi wejściowymi. Algorytm musi jasno określać, jakie informacje wyjściowe zostaną wygenerowane, a także musi być dobrze zdefiniowany.

Finitude

Algorytm musi być skończony, to znaczy musi zawsze kończyć się w pewnym momencie, po skończonej liczbie kroków, i nie dać się wciągnąć w nieskończone pętle lub tym podobne.

Wykonalny

Algorytm musi być sprytny i prosty w taki sposób, aby można go było bez problemu wykonać przy dostępnych zasobach. Dlatego nie może zawierać żadnej przyszłej technologii.

Niezależność językowa

Zaprojektowany algorytm musi być niezależny od języka, to znaczy musi składać się tylko z prostych instrukcji, które można zaimplementować w dowolnym języku programowania, a wynik zawsze taki sam, jak oczekiwano.

Wydajne programy

Zawsze istnieją różne sposoby wykonania określonej operacji w programie. Dlatego programiści starają się tworzyć możliwie najbardziej wydajne algorytmy..

Dzięki zastosowaniu bardzo wydajnych algorytmów można zagwarantować, że programy będą działały z największą szybkością przy minimalnym wykorzystaniu zasobów systemowych.

Jednak algorytmy nie zawsze są tworzone bezbłędnie za pierwszym razem. Z tego powodu programiści chcą je ulepszyć, aby uwzględnić je w przyszłych aktualizacjach oprogramowania..

Dlatego za każdym razem, gdy znana jest nowa wersja aplikacji o lepszej wydajności, oznacza to, że ta wersja zawiera bardziej wydajne algorytmy.

Do czego służy algorytm?

Algorytm jest niezwykle przydatnym narzędziem służącym do wykonywania pracy. W obliczeniach wybór najlepszego algorytmu zapewnia, że ​​komputer wykona dane zadanie w najlepszy możliwy sposób.

Dlatego służy do optymalizacji programu komputerowego z dostępnymi zasobami. Oznacza to, że decydując się na rozwiązanie problemu za pomocą najlepszych algorytmów, potrzebujesz najlepszej kombinacji szybkości programu i mniejszego zużycia pamięci.

Różne algorytmy, które można badać, są tak różne, jak problemy, które rozwiązują. Jednak jest bardzo prawdopodobne, że problem, który próbujesz rozwiązać, jest pod pewnymi względami podobny do innego problemu..

Rozumiejąc szeroką gamę algorytmów, możesz wybrać najbardziej odpowiedni dla problemu i poprawnie go zastosować.

Kompresja pliku

Te algorytmy są specjalnie dostrojone i zoptymalizowane pod kątem typów plików, na które są przeznaczone. Na przykład każdy format audio wykorzystuje inny sposób przechowywania danych. Po zdekodowaniu przez kodek audio wygeneruje plik dźwiękowy podobny do oryginalnego przebiegu.

Szyfrowanie danych

Algorytmy są również używane do ochrony danych lub linii komunikacyjnych. Zamiast przechowywać skompresowane dane, aby zajmowały mniej miejsca na dysku, są one przechowywane w sposób uniemożliwiający innym programom ich wykrycie. Gdy dane są zaszyfrowane, to, co jest przechowywane, nie wygląda na to, co jest.

Jak działa algorytm?

Aby zmusić komputer do zrobienia czegoś, musisz napisać program komputerowy. Aby napisać ten program, musisz krok po kroku powiedzieć komputerowi, co ma robić.

Następnie komputer uruchamia program, wykonując każdą instrukcję automatycznie, aby osiągnąć ostateczny wynik. Oprócz wskazania, co zrobić z komputerem, możesz również wybrać sposób, w jaki to zrobi, za pomocą algorytmu, który jest podstawową techniką używaną do wykonania pracy.

Przykładowy przypadek

Powiedzmy, że masz znajomego, który przyleciał na lotnisko i musi jechać z lotniska do naszego domu. Oto cztery różne algorytmy, które można zastosować, aby rozwiązać tę sytuację:

Nazwij mnie algorytmem

- Kiedy przyleci samolot, zadzwoń na mój telefon komórkowy.

- Spotkaj się ze mną poza strefą odbioru bagażu.

Algorytm taksówki

- Udaj się na postój taksówek.

- Wsiadaj do taksówki.

- Podaj kierowcy mój adres.

Algorytm magistrali

- Opuszczając lotnisko, wsiądź w autobus nr 70.

- Gdy dojdziesz do Main Street, wsiądź do autobusu 14.

- Wysiądź na ulicy Elmo.

- Przejdź dwie przecznice na północ do mojego domu.

Algorytm wypożycza pojazd

- Wsiądź do autobusu do miejsca, w którym wynajmują samochody.

- Wynajmij pojazd.

- Postępuj zgodnie z instrukcjami GPS, aby dostać się do mojego domu.

Wszystkie cztery algorytmy osiągają dokładnie ten sam cel, ale każdy robi to inaczej. Każdy algorytm ma również inny koszt i inny czas podróży. Dlatego algorytm dobierany jest w zależności od okoliczności.

Części algorytmu

Pozyskiwanie danych wejściowych

Algorytm musi mieć określone zasoby, aby móc odczytać wartości z zewnętrznego źródła. Większość algorytmów wymaga pewnych wartości danych do zdefiniowania konkretnego problemu. Na przykład współczynniki wielomianu.

Obliczenie

Algorytm musi mieć określone zasoby, aby móc wykonywać obliczenia arytmetyczne, porównania, sprawdzać warunki logiczne itp..

Wybór

Algorytm musi mieć określone środki, aby móc wybierać między dwoma lub więcej możliwymi działaniami w oparciu o dane początkowe, dane wejściowe użytkownika i / lub obliczone wyniki..

Iteracja

Algorytm musi mieć określone środki, aby móc wielokrotnie wykonywać zestaw instrukcji, albo ustaloną liczbę razy, albo do momentu spełnienia pewnego warunku logicznego.

Raport wyników lub wyników

Algorytm musi mieć określone zasoby, aby móc poinformować użytkownika o obliczonych przez siebie wynikach lub zażądać dodatkowych danych od użytkownika.

Rodzaje algorytmów

Algorytm rekurencyjny

Algorytm ten jest bardzo interesujący, ponieważ wywołuje sam siebie z inną wartością jako parametrem wejściowym, który otrzymał po rozwiązaniu poprzedniego parametru wejściowego. Oznacza to, że powtarza się wielokrotnie, aż problem zostanie rozwiązany.

Problemy takie jak Wieża Hanoi lub głębokie przeszukiwanie grafu można łatwo rozwiązać za pomocą tego typu algorytmów..

Algorytm dziel i zwyciężaj

W tych algorytmach jest podzielony na dwie części. W pierwszej części omawiany problem podzielony jest na mniejsze podproblemy tego samego typu. Podobnie, w drugiej części rozwiązuje się jego podproblemy, a następnie łączy obie części w celu uzyskania ostatecznego rozwiązania problemu..

Na przykład za pomocą tych algorytmów można wykonywać sortowanie kombinowane i sortowanie szybkie.

Algorytm programowania dynamicznego

Algorytmy te działają, zapamiętując wyniki poprzedniego uruchomienia i wykorzystując je do znalezienia nowych wyników. Oznacza to, że rozwiązują złożone problemy, dzieląc je na wiele prostych podproblemów, a następnie rozwiązując każdy z nich, przechowując je później do późniejszego wykorzystania..

Algorytm sił brutalnych

Ten algorytm ślepo przeszukuje wszystkie możliwe rozwiązania, aby znaleźć jedno lub więcej rozwiązań, które mogą rozwiązać funkcję. Możesz myśleć o brutalnej sile jako używaniu wszystkich możliwych kombinacji liczb do otwarcia sejfu..

Algorytm rezerwowy

Ten algorytm rozwiązuje problemy rekurencyjnie i próbuje rozwiązać problem, rozwiązując każdą jego część. Jeśli rozwiązanie nie powiedzie się, jest usuwane i cofane w celu znalezienia innego rozwiązania.

Oznacza to, że ten algorytm rozwiązuje podproblem, ale jeśli to nie rozwiąże całego problemu, cofa ostatni krok i zaczyna od nowa znaleźć rozwiązanie problemu..

Przykłady algorytmów

Algorytm rekurencyjny

Ten pseudokod znajduje silnię nieujemnej liczby całkowitej „N” przy użyciu algorytmu rekurencji:

Algorytm programowania dynamicznego

Ciąg Fibonacciego jest dobrym przykładem algorytmu programowania dynamicznego. Możesz to zobaczyć w tym pseudokodzie:

- Jeśli (N = 0 lub N = 1), Fibonacci (N) = 0

- Jeśli nie, Fibonacci (N) = Fibonacci (N-1) + Fibonacci (N-2)

Algorytm rezerwowy

Dobrym przykładem jest problem szachów z 8 damami. Ten problem zakłada, że ​​na szachownicy znajduje się 8 figur hetmanów i muszą one być ułożone w taki sposób, aby żadna z hetmanów nie była w stanie zaatakować żadnej innej po ich zorganizowaniu..

Różne przykłady

- Algorytm diagnostyki HIV.

Algorytm diagnostyki HIV. Źródło: Immunopedia / CC BY-SA (https://creativecommons.org/licenses/by-sa/4.0)

- Wyszukiwarki internetowe używają zastrzeżonych algorytmów do wyświetlania najtrafniejszych wyników z ich indeksu wyszukiwania dla określonych zapytań..

- Receptury, podobnie jak równania matematyczne, są algorytmami.

- Email wie, gdzie wysłać dzięki algorytmom.

- Treści wyświetlane w sieciach społecznościowych pochodzą z algorytmów. W rzeczywistości wszystko, co dzieje się w sieci, jest wytworem algorytmów.

- Gry wideo to algorytmiczne opowiadanie historii.

- Aplikacje na smartfony to tylko algorytmy.

- Większość transakcji finansowych odbywa się za pomocą algorytmów.

- Za każdym razem, gdy kolumna jest sortowana w arkuszu kalkulacyjnym, interweniują algorytmy.

Bibliografia

  1. Lee Rainie (2017). Zależne od kodu: wady i zalety ery algorytmów. Pew Research Center. Zaczerpnięte z: pewresearch.org.
  2. Warunki techniczne (2020). Algorytm. Zaczerpnięte z: techterms.com.
  3. Britannica (2020). Algorytm. Zaczerpnięte z: britannica.com.
  4. Educba (2020). Rodzaje algorytmów. Zaczerpnięte z: Educba.com.
  5. How to Geek (2016). Co to są algorytmy komputerowe i jak działają? Zaczerpnięte z: howtogeek.com.
  6. Jak to działa (2020). Co to jest algorytm komputerowy? Zaczerpnięte z: computer.howstuffworks.com.

Jeszcze bez komentarzy