Pascal valoda - rekursija Shell šķirnē

Definīcija

Rekursija skaitļošanas vai matemātiskā izteiksmē ir metode, kā noteikt funkcijas, kurās definētā funkcija tiek pielietota tās paša apzīmējuma ietvaros. Termins tiek lietots arī vispārīgāk, lai aprakstītu objektu atkārtošanas procesu līdzīgā veidā.

Īstenošana

Zemāk jūs atradīsiet vienkāršu rekursīvo procedūru, kas ļauj kārtot (n) skaitļu tabulu, izmantojot Shell šķirošanas metodi:

 Procedūra Shell_Sort_Rec (Var t: TAB; n, h: vesels skaitlis); Var aux, i: vesels skaitlis; sāciet Ja h> 0 Tad sāciet Ja n> h Tad sākas Shell_Sort_Rec (t, n - h, h); Ja t [n]  t [i - h]); t [i]: = aux; Beigas; Beigas; Shell_Sort_Rec (t, n, h div 3); Beigas; Beigas; 

Piezīmes

Labāk ir pārbaudīt šo procedūru ar mazām tabulām, jo ​​gadījumā, ja zvanu skaits kļūst pārāk svarīgs, var pārvērst atmiņas kaudzes robežas, kas piešķirtas rekursīvajai funkcijai. Jūs varat palielināt testa tabulas lielumu, palielinot kaudzes lielumu:

 OptioncompilerMemory Settingsstack izmērs 
  • Uzziniet vairāk par Shell šķirošanas algoritmu
  • Paldies Zouari Lazhar par šo padomu
Iepriekšējais Raksts Nākamais Raksts

Top Padomi