Istnieje wiele różnych sposobów podziału algorytmów na grupy, jednak problem ten wzbudza kontrowersje.
Podstawowe paradygmaty tworzenia algorytmów komputerowych:
- dziel i zwyciężaj– dzielimy problem na kilka mniejszych, a te znowu dzielimy, aż ich rozwiązania staną się oczywiste;
- prograowanie dynamiczne – problem dzielony jest na kilka, ważność każdego z nich jest oceniana i po pewnym wnioskowaniu wyniki analizy niektórych prostszych zagadnień wykorzystuje się do rozwiązania głównego problemu;
- metoda zachłanna – nie analizujemy podproblemów dokładnie, tylko wybieramy najbardziej obiecującą w danym momencie drogę rozwiązania;
- prograowanie liniowe– oceniamy rozwiązanie problemu przez pewną funkcję jakości i szukamy jej minimum;
- wyszukiwanie wyczerpujące– przeszukujemy zbiór danych, aż do odnalezienia rozwiązania;
- heurestyke – człowiek na podstawie swojego doświadczenia tworzy algorytm, który działa w najbardziej prawdopodobnych warunkach, rozwiązanie zawsze jest przybliżone.
Najważniejsze techniki implementacji algorytmów komputerowych:
- procedularnosc – algorytm dzielimy na szereg podstawowych procedur, wiele algorytmów współdzieli wspólne biblioteki standardowych procedur, z których są one wywoływane w razie potrzeby;
- praca sekwencyjna – wykonywanie poszczególnych procedur algorytmu, według kolejności ich wywołań, naraz pracuje tylko jedna procedura;
- praca wielowątkowa – procedury wykonywane są sekwencyjnie, lecz kolejność ich wykonania jest trudna do przewidzenia dla programisty;
- praca równoległa – wiele procedur wykonywanych jest w tym samym czasie, wymieniają się one danymi;
- rekurnecje – procedura lub funkcja wywołuje sama siebie, aż do uzyskania wyniku lub błędu
- obiektynwność– procedury i dane łączymy w pewne klasy reprezentujące najważniejsze elementy algorytmu oraz stan wewnętrzny wykonującego je systemu;
- algorytm probalistyczny – działa poprawnie z bardzo wysokim prawdobodobięństwem ale wynik nie jest pewny,