Мова Pascal - Рекурсія в межах сортування оболонки

Визначення

Рекурсія, в обчислювальних або математичних термінах, є методом визначення функцій, в яких визначена функція застосовується в межах власного позначення. Термін також використовується більш загально, щоб описати процес повторення об'єктів подібною схемою.

Реалізація

Нижче ви знайдете просту рекурсивну процедуру, яка дозволяє сортувати таблицю (n) числа цілих чисел за допомогою методу сортування Shell:

 Процедура Shell_Sort_Rec (Var t: TAB; n, h: integer); Var aux, i: ціле число; begin Якщо h> 0 Потім починається, якщо n> h Потім починається Shell_Sort_Rec (t, n - h, h); Якщо t [n]  t [i - h]); t [i]: = aux; End; End; Shell_Sort_Rec (t, n, h Div 3); End; End; 

Примітки

Краще протестувати цю процедуру на малих таблицях, тому що у випадку, коли кількість викликів стає занадто важливим, може перетікати межі стека пам'яті, що виділяються на рекурсивну функцію. Ви можете збільшити розмір тестової таблиці, збільшуючи розмір стека:

 Розмір налаштувань OptioncompilerMemory 
  • Докладніше про алгоритм сортування оболонок
  • Завдяки Zouari Lazhar для цього tip
Попередня Стаття Наступна Стаття

Кращі Поради