Algorytm to jednoznaczny przepis przetworzenia w skończonym czasie pewnych danych wejściowych do pewnych danych wynikowych.Zazwyczaj przy analizowaniu bądź projektowaniu algorytmu zakłada się, że dostarczane dane wejściowe są poprawne, czasem istotną częścią algorytmu jest nie tylko przetworzenie, ale i weryfikacja danych.Skalarny typ danych jest przeznaczony do przechowywania pojedynczej wartości i nie ma
wewnętrznych składników. Skalarne typy danych można podzielić na cztery kategorie: liczby,
znaki, daty i wartości logiczne. Znakowe i liczbowe typy danych mają z kolei podtypy, które
nakładają na typ bazowy konkretne ograniczenia. Na przykład INTEGER i POS ITIVE są
podtypami typu bazowego NUMBER.Zlożone typy danych: składają się z wewnętrznych elementów typuskalarnego albo złożonego. Przykładami typów złożonych są rekordy i tablice.Definicja wskaźnika jest instrukcją składającą się z nazwy typu zmiennej, znaku * (używanego też w innym kontekście jako operator wyłuskania) i identyfikatora nowotworzonego wskaźnika:TYP * zmienna;Algorytm rekurencyjny algorytm, który wywołuje sam siebie do rozwiązania tego samego problemu. Algorytm rekurencyjny jest często realizacją zasady “dziel i zwyciężaj”, która składa się z trzech kroków:1) “dzielenia”, tj. podziału problemu na podproblemy;
2) rekurencyjnego rozwiązania podproblemów, chyba że można je rozwiązać metodą bezpośrednią - takie postępowanie prowadzi do “zwycięstwa” w sensie czasu rozwiązywania problemu;3) “połączenia” rozwiązań podproblemów w rozwiązanie całego problemu.
Przykłady algorytmów rekurencyjnych: sortowanie przez scalanie, algorytm Euklidesa.Graf pełny - graf prosty, w którym każde dwa różne wierzchołki są sąsiednie. Oznaczamy Kn.pełny graf o n wierzchołkach posiada
krawędzi. Rys. wszystkie linie połączyć. Graf pusty: graf, którego zbiór krawędzi jest pusty (bezkrawędziowy). Oznaczamy. Rys. 4 kropki.--W zagadnieniach, gdzie nazwy są zbędne, pomijamy je → grafy nieoznakowane (w przeciwieństwie do oznakowanych czyli takich, gdzie wierzchołkom są przyporządkowane nazwy).
Graf skierowany
Graf nieskierowany
Drzewo zrównoważone
Binarne drzewo poszukiwań o wielkości równej 9, a wysokości równej 3; wierzchołek '8' jest tu korzeniem, a wierzchołki '1', '4', '7' i '13', to liście
Drzewo niezrównoważone (np. lewe poddrzewo węzła 76 ma wysokość 3, a prawe 0)
Złożoność obliczeniowa. n:liniowa, n^2:kwadratowa
n2 - kwadratowa
sortowanie przez wstawianie,
obliczanie minimalnej odleglosci między punktami:
{ mm:=dyst(p[1],p[2]);
for j:=1 to n-1 do
for k:=j+1 to n do
if (mm > dyst(p[j],p[k])) then
mm := dyst(p[j],p[k]);
}
n - liniowa
wyszukiwanie elementu minimalnego
{ j:=1; m:=a[1];
for k:=2 to n do if (a[k]<m) then
{ j:=k; m:=a[k];}
}
// sortowanie babelkowe
for (i=255;i>1;i--){
f=0;
for (j=0;j<i-1;j++)
if(tabela[j]>tabela[j+1]){
tmp=tabela[j];
tabela[j]=tabela[j+1];
tabela[j+1]=tmp;
f=1;
}
if (f==0) break;
}
printf("babelkowe:\n");
printf("\n"); //odstęp
for (i=0;tabela[i] != '\0';i++) printf("%c", tabela[i]);