خوارزميةاحترافي
العَوْدية: المضروب
دالة تستدعي نفسها بمدخل أصغر، حتى تصل إلى حالة يمكنها الإجابة عنها مباشرة.
- الزمن
- O(n)
- الذاكرة
- O(n)
تتبّعها خطوة بخطوة
الخطوة 1 من 11
1function factorial(n) {2 if (n <= 1) return 1;3 return n * factorial(n - 1);4}- depth
- = 1
- factorial(4)
نستدعي factorial(4).
درس احترافي
افتح الشرح الكامل
هذا الدرس جزء من الخطة الاحترافية، التي تفتح كل خطوة في كل درس، إضافة إلى تدريبات الأنماط وتقارير الإتقان.
اطّلع على الأسعاركيف تعمل
لا يستطيع factorial(4) الإجابة فوراً، فيسأل factorial(3)، الذي يسأل factorial(2)، وهكذا. كل استدعاء ينتظر في مكدّس الاستدعاءات. عندما يصل factorial(1) إلى الحالة الأساسية ويُعيد 1، تعود الإجابات صعوداً ويُكمل كل استدعاء منتظر عملية الضرب. كل دالة عَوْدية تحتاج إلى حالة أساسية وخطوة تجعل المدخل أصغر. الزمن O(n)، والذاكرة O(n) لمكدّس الاستدعاءات.
تدرّب على اكتشاف هذا النمط →