Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Курсовые проекты » Рекурсивні алгоритми

Реферат Рекурсивні алгоритми





рагмент стека для B поміщається покажчик клітинки у фрагменті стека для A, в яку належить помістити значення цієї функції (Адреса значення). p> 2. Управління передається першому оператору процедури B. p> 3. При завершенні роботи процедури B управління передається процедурі A за допомогою наступної послідовності кроків: (а) адреса повернення витягується з вершини стека; (б) якщо B - функція, то її значення запам'ятовується в комірці, продиктованої покажчиком на адресу значення; (в) фрагмент стека процедури B вилучають із стека, в вершину ставиться фрагмент процедури A; (г) виконання процедури A поновлюється з команди, зазначеної в адресі повернення.

При виклику підпрограмою самої себе, тобто в рекурсивному випадку, виконується та ж сама послідовність дій.

Цей прийом робить можливою легку реалізацію рекурсивних процедур. Коли процедура викликає сама себе, то для всіх її локальних змінних виділяється нова пам'ять в стеку, і вкладений виклик працює з власним уявленням локальних змінних. Коли вкладений виклик завершується, займана його змінними область пам'яті в стеку звільняється і актуальним стає уявлення локальних змінних попереднього рівня. За рахунок цього в мовах PASCAL і C будь-які процедури і функції можуть викликати самі себе. У мові PL/1, де за замовчуванням прийняті інші способи розміщення локальних змінних, рекурсивна процедура повинна бути визначена з описателем RECURSIVE - тільки тоді її локальні змінні будуть розміщуватися в стек.

Рекурсія використовує стек в прихованому від програміста вигляді, але все рекурсивні процедури можуть бути реалізовані і без рекурсії, але з явним використанням стека. Приклад подібної В«розгорненняВ» рекурсії можна побачити в реалізації швидкого сортування Хоара через стек [21].

Один прохід сортування Хоара розбиває вихідне безліч на два множини. Межі отриманих множин запам'ятовуються в стеку. Потім з стека вибираються кордону, що знаходяться у вершині, і обробляється безліч, визначається цими кордонами. У процесі його обробки в стек може бути записана нова пара кордонів і т.д. При початкових установках в стек заносяться кордону вихідного безлічі. Сортування закінчується з спустошенням стека. p> Хочеться зауважити, що для сортування використовується саме реалізація на основі масиву. Дійсно, основна вимога до сортування - швидкість, а операції з масивом виконуються значно швидше, ніж перехід по вказівниками. Пам'ять же, необхідна під стек в даному алгоритмі -, константа мала, так що для сортування 1 Гб інформації потрібно лише близько 1 Кб стек.

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


Назад | сторінка 9 з 13 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Створення та реалізація стека
  • Реферат на тему: Дослідження мережі передачі інформації на основі стека протоколів ZigBee. ...
  • Реферат на тему: Дослідження організації фінансів у малому бізнесі на прикладі ТОВ "Сте ...
  • Реферат на тему: Підпрограми. Процедури і функції
  • Реферат на тему: Основні оператори мови Turbo-Paskal. Процедури і функції