muzruno.com

Какво е рекурсията? Рекусия в програмирането (примери)

Рекурсиите са интересни събития сами по себе си, но при програмирането те са от особено значение в отделни случаи. За пръв път, когато се натъкват на тях, доста голям брой хора имат проблеми с разбирането им. Това се дължи на огромното поле на потенциалното приложение на самия термин, в зависимост от контекста, в който се използва "рекурсията". Но може да се надяваме, че тази статия ще ви помогне да избегнете евентуално неразбиране или неразбиране.

Какво е "рекурсията" като цяло?

рекурсията еДумата "рекурсия" има цял набор от стойности, които зависят от областта, в която се прилагат. Универсалното означение е това: рекурсиите са дефиниции, изображения, описания на обекти или процеси в самите обекти. Те са възможни само в случаите, когато обектът е част от себе си. По свой начин, математиката, физиката, програмирането и редица други научни дисциплини определят рекурсията. Практическо приложение, открито в работата на информационните системи и физическите експерименти.

Какво имате предвид чрез рекурсията в програмирането?

рекурсия в паскалРекурсивните ситуации или рекурсията в програмирането са моментите, в които процедурата или функцията на програмата се нарича. Колкото и странно да изглежда, че за тези, които започнаха да учат програмиране, това не звучи странно. Не забравяйте, че рекурсията не е трудна и в някои случаи те заменят цикъла. Ако компютърът правилно задава процедура или функция, тя просто започва да го изпълнява.

Рекурсията може да бъде ограничена или безкрайна. За да не се нарече първият човек, трябва да има и условия за прекратяване. Това може да бъде намаление на стойността на променливата и когато се достигне определена стойност, обадете се на стоп и прекратяване на програмата / преход към следващия код, в зависимост от необходимостта да се постигнат определени цели. Чрез безкрайно рекурсиране се означава, че ще бъде наречен, докато компютърът или програмата, в която се изпълнява, се изпълняват.

Също така е възможно да се организира комплексна рекурсия с две функции. Да предположим, че има А и Б. А има в кода на повикване до точка Б, и В, от своя страна, се посочва необходимостта за компютър, за да извършите комплекс А. рекурсия - изход от сложна поредица от логически ситуации за компютър логика.

Ако читателят чете тези линии, изследва програмните цикли, тогава той вероятно вече е забелязал приликата между тях и рекурсията. Като цяло те могат да изпълняват сходни или идентични задачи. С помощта на рекурсията е удобно да се направи имитация на работата на цикъла. Това е особено полезно, когато самите цикли не са много удобни. Схемата за внедряване на софтуер не се различава много от различните езици за програмиране на високо ниво. Но все пак рекурсията в "Паскал" и рекурсията в С или друг език има свои особености. Тя може успешно да се реализира на езици на ниско ниво като Assembler, но това е по-проблематично и отнема много време.

Дървета на рекурсията



рекурсия в програмиранетоКакво е "дърво" в програмирането? Това е ограничен набор, състоящ се от поне един възел, който:

  1. Той има начален специален възел, който се нарича корена на цялото дърво.
  2. Останалите възли са в количество, различно от нула, разпределени по двойки, и те също са дърво. Всички тези форми на организация се наричат ​​субтриси на основното дърво.

С други думи: дърветата съдържат субтрии, които съдържат дървета, но в по-малка сума от предишното дърво. Това продължава, докато един от възлите няма възможност да се придвижи напред и това ще означава краят на рекурсията. Има още един нюанс за схематичното изображение: обикновените дървета растат отдолу нагоре, а при програмирането те се изтеглят назад. Възлите, които нямат разширение, се наричат ​​крайни възли. За удобство при обозначаване и за удобство се използва генеалогична терминология (предци, деца).

Защо се използва в програмирането?

рекурсивна функцияИзползването на рекурсията в програмирането намери решение на редица сложни проблеми. Ако трябва само да направите едно обаждане, тогава е по-лесно да използвате интеграционен цикъл, но с две или повече повторения, за да избегнете изграждането на верига и да я направите като дърво и да се приложат рекурсивни ситуации. За широк кръг от проблеми организацията на изчислителния процес по този начин е най-оптимална от гледна точка на консумацията на ресурси. По този начин рекурсията в Pascal или друг език за програмиране на високо ниво е функция или процедура, преди условията да бъдат изпълнени, независимо от броя на външните обаждания. С други думи, в програмата може да има само един достъп до подпрограмата, но това ще се случи до определен момент предварително. В известен смисъл това е аналог на цикъла със собствената му специфична употреба.

Разликите в рекурсията на различни програмни езици

Въпреки общата схема на изпълнение и специфичното приложение във всеки отделен случай, рекурсията в програмирането има свои собствени характеристики. Това може да доведе до трудности при търсенето на необходимия материал. Но ние винаги трябва да помним: ако езикът за програмиране изисква функции или процедури, тогава рекурсивното повикване е работещо нещо. Но най-значимите разлики се проявяват при използване на ниски и високи езици за програмиране. Особено се отнася до възможностите за внедряване на софтуер. Изпълнението в крайна сметка зависи от определената задача, в съответствие с нея се пише рекурсията. Функциите и процедурите се използват по различен начин, но целта им винаги е една и съща - да се принудят да се наричат.

Рекурсията е лесна. Как да си спомним съдържанието на статията?

примери на рекурсияЗа начинаещите да го разберат, може да е трудно отначало, затова се нуждаем от примери за рекурсия или поне едно. Ето защо трябва да дадем малък пример от ежедневието, което ще помогне да се разбере самата същност на този механизъм за постигане на целите в програмирането. Вземете две или повече огледала, поставете ги така, че всички останали да се показват в едно. Можете да видите, че огледалата се показват многократно, създавайки ефект на безкрайност. Тук рекурсите са, от една страна, рефлексии (ще има много от тях). Както можете да видите, е лесно да се разбере, че ще има желание. И като изучавате програмните материали, можете да разберете, че рекурсията също е много лесна задача.

Споделяне в социалните мрежи:

сроден