تعمل الوظيفة العودية أسرع بكثير من الوظيفة التكراريةالسبب هو أنه في الأخير ، لكل عنصر ، هناك حاجة إلى CALL للدالة st_push ثم أخرى إلى st_pop. في السابق ، لديك فقط CALL العودي لكل عقدة. بالإضافة إلى ذلك ، فإن الوصول إلى المتغيرات على Callstack سريع بشكل لا يصدق.
هل التكرار أو التكراري أسرع؟
Memoization يجعل التكرار مستساغًا ، لكن يبدو أن التكرار دائمًا أسرععلى الرغم من أن الطرق العودية تعمل بشكل أبطأ ، إلا أنها تستخدم أحيانًا سطورًا أقل من التعليمات البرمجية أكثر من التكرار ويسهل فهمها بالنسبة للكثيرين. تعتبر الطرق العودية مفيدة لبعض المهام المحددة أيضًا ، مثل عبور هياكل الشجرة.
هل الحلول التكرارية أسرع من الحلول العودية؟
ومع ذلك ، فإن الحلول التكرارية عادة ما تكون أسرع من الحلول العوديةعندما يتعلق الأمر بالسرعة. … في لغة البرمجة القياسية ، حيث لا يحتوي المحول البرمجي على تحسين متكرر الذيل ، تكون المكالمات المتكررة أبطأ من التكرار.
هل العودية أسهل من التكرار؟
الحقيقة هي أن العودية نادرًا ما تكون الطريقة الأكثر فعالية لحل مشكلة ما ، و التكرار دائمًا ما يكون أكثر فاعليةهذا لأنه عادة ما يكون هناك المزيد من النفقات العامة المرتبطة بجعل التكرار المكالمات بسبب حقيقة أن مكدس المكالمات يستخدم بكثرة أثناء العودية.
ما هي عيوب العودية؟
عيوب العودية
- الدوال التكرارية عادة ما تكون أبطأ من الدوال غير العودية.
- قد يتطلب الأمر مساحة كبيرة من الذاكرة لعقد النتائج الوسيطة على مكدسات النظام.
- يصعب تحليل الكود أو فهمه.
- ليست أكثر كفاءة من حيث تعقيد المكان والزمان.