Ե՞րբ պետք է օգտագործեմ ռեկուրսիա: Ռեկուրսիան ստեղծված է խնդիրների լուծման համար, որոնք կարելի է բաժանել փոքր, կրկնվող խնդիրների: Այն հատկապես լավ է այնպիսի բաների վրա աշխատելու համար, որոնք ունեն բազմաթիվ հնարավոր ճյուղեր և չափազանց բարդ են կրկնվող մոտեցման համար: Դրա լավ օրինակը կլինի որոնումը ֆայլային համակարգի միջոցով:
Ռեկուրսիան լա՞վ բան է:
Ռեկուրսիան Օգտակար տեխնիկա է ծածկագիրը կարճ և հասկանալի դարձնելու համար: Այնուամենայնիվ, այն ավելի քիչ կատարողական է և առաջացնում է կույտերի արտահոսքի բացառություններ ոչ պոչի զանգի օպտիմիզացված լեզուներում: Զգուշորեն ուսումնասիրեք ձեր օգտագործման դեպքը, երբ ընտրում եք ռեկուրսիվ և կրկնվող ֆունկցիաների միջև:
Որո՞նք են ռեկուրսիայի առավելությունները:
- Ռեկուրսիան կարող է նվազեցնել ժամանակի բարդությունը: …
- Ռեկուրսիան ավելացնում է հստակություն և կրճատում է կոդը գրելու և վրիպազերծելու համար անհրաժեշտ ժամանակը: …
- Ռեկուրսիան ավելի լավ է ծառերի հատման ժամանակ: …
- Վերադարձը կարող է դանդաղ լինել: …
- Կրկնություն. ֆունկցիան կրկնում է սահմանված գործընթացը մինչև պայմանը ձախողվի:
Ե՞րբ պետք է խուսափել ռեկուրսիայից:
Հետևաբար պետք է ընդհանրապես խուսափել կրկնությունից և օգտագործել միայն պատշաճ մտորումներով և զգուշությամբ, երբ դա խիստ անհրաժեշտ է: Այս կանոնը ստուգում է ուղիղ ռեկուրսիայի առկայությունը (երբ ֆունկցիան իրեն կանչում է):
Ե՞րբ պետք է օգտագործենք կրկնվող, իսկ երբ՝ ռեկուրսիվ։
Եթե ուշադրության կետը ժամանակի բարդությունն է, և ռեկուրսիվ զանգերի թիվը մեծ կլինի, ավելի լավ է օգտագործելկրկնություն. Այնուամենայնիվ, եթե ժամանակի բարդությունը խնդիր չէ, իսկ կոդի կարճությունը, ապա ռեկուրսիան կարող է գնալ: