Pascal-Sprache - Rekursion innerhalb einer Shell-Sortierung

Definition

Rekursion ist eine rechnerische oder mathematische Methode zur Definition von Funktionen, bei der die zu definierende Funktion innerhalb ihrer eigenen Bezeichnung angewendet wird. Der Begriff wird auch allgemeiner verwendet, um den Vorgang des Wiederholens von Objekten in einem ähnlichen Muster zu beschreiben.

Implementierung

Im Folgenden finden Sie eine einfache rekursive Prozedur, mit der Sie eine Tabelle mit (n) Ganzzahlen nach der Shell-Sortiermethode sortieren können:

 Prozedur Shell_Sort_Rec (Var t: TAB; n, h: Ganzzahl); Var aux, i: ganze Zahl; begin Wenn h> 0 Dann beginne Wenn n> h Dann beginne Shell_Sort_Rec (t, n - h, h); Wenn t [n]  t [i - h]); t [i]: = aux; Ende; Ende; Shell_Sort_Rec (t, n, h Div 3); Ende; Ende; 

Anmerkungen

Es ist besser, diese Prozedur an kleinen Tabellen zu testen, da in dem Fall, dass die Anzahl der Aufrufe zu wichtig wird, die Grenzen des der rekursiven Funktion zugewiesenen Speicherstapels überschritten werden können. Sie können die Größe der Testtabelle erhöhen, indem Sie den Stapel vergrößern:

 OptioncompilerMemory Settingsstack-Größe 
  • Weitere Informationen zum Shell-Sortieralgorithmus
  • Vielen Dank an Zouari Lazhar für diesen Tipp
Vorherige Artikel Nächster Artikel

Top-Tipps