Python - projektowanie algorytmów

Algorytm to procedura krok po kroku, która definiuje zestaw instrukcji, które mają być wykonane w określonej kolejności, aby uzyskać pożądane wyjście. Algorytmy są generalnie tworzone niezależnie od języków bazowych, tj. Algorytm można zaimplementować w więcej niż jednym języku programowania.

Z punktu widzenia struktury danych, poniżej przedstawiono kilka ważnych kategorii algorytmów:

  • Search - Algorytm wyszukiwania elementu w strukturze danych.

  • Sort - Algorytm sortowania elementów w określonej kolejności.

  • Insert - Algorytm wstawiania elementu do struktury danych.

  • Update - Algorytm aktualizacji istniejącego elementu w strukturze danych.

  • Delete - Algorytm usuwania istniejącego elementu ze struktury danych.

Charakterystyka algorytmu

Nie wszystkie procedury można nazwać algorytmem. Algorytm powinien mieć następujące cechy -

  • Unambiguous- Algorytm powinien być jasny i jednoznaczny. Każdy z jego kroków (lub faz) i ich wejścia / wyjścia powinny być jasne i prowadzić tylko do jednego znaczenia.

  • Input - Algorytm powinien mieć 0 lub więcej dobrze zdefiniowanych danych wejściowych.

  • Output - Algorytm powinien mieć 1 lub więcej dobrze zdefiniowanych wyników i powinien pasować do żądanego wyniku.

  • Finiteness - Algorytmy muszą kończyć się po skończonej liczbie kroków.

  • Feasibility - Powinno być wykonalne przy dostępnych zasobach.

  • Independent - Algorytm powinien mieć instrukcje krok po kroku, które powinny być niezależne od jakiegokolwiek kodu programowania.

Jak napisać algorytm?

Nie ma dobrze zdefiniowanych standardów pisania algorytmów. Raczej zależy od problemu i zasobów. Algorytmy nigdy nie są pisane w celu obsługi określonego kodu programowania.

Jak wiemy, wszystkie języki programowania mają wspólne podstawowe konstrukcje kodu, takie jak pętle (do, for, while), sterowanie przepływem (if-else) itp. Te typowe konstrukcje mogą być użyte do napisania algorytmu.

Algorytmy piszemy krok po kroku, ale nie zawsze tak jest. Zapis algorytmu jest procesem i jest wykonywany po dokładnym zdefiniowaniu dziedziny problemu. Oznacza to, że powinniśmy znać dziedzinę problemu, dla której projektujemy rozwiązanie.

Przykład

Spróbujmy nauczyć się pisania algorytmów na przykładzie.

Problem - Zaprojektuj algorytm, aby dodać dwie liczby i wyświetlić wynik.

step 1 − START
step 2 − declare three integers a, b & c
step 3 − define values of a & b
step 4 − add values of a & b
step 5 − store output of step 4 to c
step 6 − print c
step 7 − STOP

Algorytmy mówią programistom, jak zakodować program. Alternatywnie algorytm można zapisać jako -

step 1 − START ADD
step 2 − get values of a & b
step 3 − c ← a + b
step 4 − display c
step 5 − STOP

W projektowaniu i analizie algorytmów zwykle do opisu algorytmu używa się drugiej metody. Ułatwia analitykowi analizę algorytmu, ignorując wszystkie niechciane definicje. Potrafi obserwować, jakie operacje są wykonywane i jak przebiega proces.

Pisanie step numbers, jest opcjonalne.

Projektujemy algorytm, aby uzyskać rozwiązanie danego problemu. Problem można rozwiązać na więcej niż jeden sposób.

Dlatego dla danego problemu można wyprowadzić wiele algorytmów rozwiązania. Kolejnym krokiem jest przeanalizowanie zaproponowanych algorytmów rozwiązania i wdrożenie najlepszego odpowiedniego rozwiązania.