Język Pascal - Rekursja w obrębie Powłoki

Definicja

Rekurencja w kategoriach obliczeniowych lub matematycznych jest metodą definiowania funkcji, w których definiowana funkcja jest stosowana w jej własnym oznaczeniu. Termin ten jest również używany bardziej ogólnie do opisania procesu powtarzania obiektów w podobny sposób.

Realizacja

Poniżej znajdziesz prostą rekurencyjną procedurę pozwalającą na sortowanie tabeli (n) liczby całkowitych przy użyciu metody sortowania Shell:

 Procedura Shell_Sort_Rec (Var t: TAB; n, h: integer); Var aux, i: integer; begin Jeśli h> 0 Wtedy Begin Jeśli n> h Następnie zacznij Shell_Sort_Rec (t, n - h, h); Jeśli t [n]  t [i - h]); t [i]: = aux; Koniec; Koniec; Shell_Sort_Rec (t, n, h Div 3); Koniec; Koniec; 

Uwagi

Lepiej przetestować tę procedurę na małych tabelach, ponieważ w przypadku, gdy liczba wywołań staje się zbyt ważna, może rozlać się limity stosu pamięci przypisane do funkcji rekurencyjnej. Możesz zwiększyć rozmiar tabeli testowej przy zwiększaniu rozmiaru stosu:

 OptioncompilerRozmiar pamięci ustawień 
  • Dowiedz się więcej o algorytmie sortowania powłoki
  • Podziękowania dla Zouari Lazhar za tę wskazówkę
Poprzedni Artykuł Następny Artykuł

Najważniejsze Wskazówki