DAA - Wprowadzenie
Algorytm to zestaw kroków operacji mających na celu rozwiązanie problemu polegającego na wykonywaniu obliczeń, przetwarzania danych i automatycznych zadań wnioskowania. Algorytm to skuteczna metoda, którą można wyrazić w skończonej ilości czasu i przestrzeni.
Algorytm to najlepszy sposób na przedstawienie rozwiązania konkretnego problemu w bardzo prosty i skuteczny sposób. Jeśli mamy algorytm dla konkretnego problemu, możemy go zaimplementować w dowolnym języku programowania, co oznacza, żealgorithm is independent from any programming languages.
Projektowanie algorytmów
Ważnymi aspektami projektowania algorytmów jest stworzenie wydajnego algorytmu do rozwiązania problemu w efektywny sposób przy minimalnym czasie i przestrzeni.
Aby rozwiązać problem, można zastosować różne podejścia. Niektóre z nich mogą być wydajne pod względem zużycia czasu, podczas gdy inne podejścia mogą być wydajne pod względem pamięci. Należy jednak pamiętać, że nie można jednocześnie optymalizować zużycia czasu i pamięci. Jeśli wymagamy, aby algorytm działał w krótszym czasie, musimy zainwestować w więcej pamięci, a jeśli wymagamy, aby algorytm działał z mniejszą ilością pamięci, potrzebujemy więcej czasu.
Kroki rozwoju problemu
Poniższe kroki obejmują rozwiązywanie problemów obliczeniowych.
- Definicja problemu
- Opracowanie modelu
- Specyfikacja algorytmu
- Projektowanie algorytmu
- Sprawdzanie poprawności algorytmu
- Analiza algorytmu
- Implementacja algorytmu
- Testowanie programu
- Documentation
Charakterystyka algorytmów
Główne cechy algorytmów są następujące -
Algorytmy muszą mieć unikalną nazwę
Algorytmy powinny mieć wyraźnie zdefiniowany zestaw wejść i wyjść
Algorytmy są uporządkowane z jednoznacznymi operacjami
Algorytmy zatrzymują się w skończonym czasie. Algorytmy nie powinny działać w nieskończoność, tj. Algorytm musi w pewnym momencie zakończyć się
Pseudo kod
Pseudokod zapewnia opis algorytmu na wysokim poziomie bez niejednoznaczności związanej ze zwykłym tekstem, ale także bez konieczności znajomości składni konkretnego języka programowania.
Czas działania można oszacować w bardziej ogólny sposób, używając pseudokodu do reprezentowania algorytmu jako zestawu podstawowych operacji, które można następnie policzyć.
Różnica między algorytmem a pseudokodem
Algorytm to formalna definicja z pewnymi określonymi cechami opisująca proces, który może zostać wykonany przez maszynę komputerową wyposażoną w Turinga w celu wykonania określonego zadania. Ogólnie rzecz biorąc, słowo „algorytm” może być użyte do opisania dowolnego zadania wysokiego poziomu w informatyce.
Z drugiej strony pseudokod to nieformalny i (często prymitywny) czytelny dla człowieka opis algorytmu, pozostawiający wiele szczegółowych jego szczegółów. Pisanie pseudokodu nie ma ograniczeń stylowych, a jego jedynym celem jest opisanie kroków algorytmu wysokiego poziomu w bardzo realistyczny sposób w języku naturalnym.
Na przykład poniżej przedstawiono algorytm sortowania przez wstawianie.
Algorithm: Insertion-Sort
Input: A list L of integers of length n
Output: A sorted list L1 containing those integers present in L
Step 1: Keep a sorted list L1 which starts off empty
Step 2: Perform Step 3 for each element in the original list L
Step 3: Insert it into the correct position in the sorted list L1.
Step 4: Return the sorted list
Step 5: Stop
Oto pseudokod, który opisuje, jak wyżej wspomniany abstrakcyjny proces wysokiego poziomu w algorytmie Sortowanie przez wstawianie można opisać w bardziej realistyczny sposób.
for i <- 1 to length(A)
x <- A[i]
j <- i
while j > 0 and A[j-1] > x
A[j] <- A[j-1]
j <- j - 1
A[j] <- x
W tym samouczku algorytmy zostaną przedstawione w postaci pseudokodu, który jest pod wieloma względami podobny do C, C ++, Java, Python i innych języków programowania.