1.سهلة
ما التذكير (Memoisation)؟
- Aتخزين نتائج استدعاءات الدوال ليُجاب عن الاستدعاءات المكررة من الذاكرة
- Bتحويل العودية إلى حلقة مكافئة تلقائيًا فلا حاجة إلى مكدّس استدعاءات
- Cتحرير الذاكرة بعد عودة الدالة
- Dكتابة تعليقات بجانب كل سطر من الشيفرة
2.سهلة
أي ترميز يصف حدًا أعلى للنمو؟
- Aثيتا الكبير (Big Theta)
- Bأوميغا الصغير (Little omega)
- Cأوميغا الكبير (Big Omega)
- DO الكبير (Big O)
3.سهلة
ما الخطوات الثلاث لخوارزمية فرّق تسُد؟
- Aالتخمين، والتحقق، والتكرار
- Bالقراءة، والحساب، والكتابة
- Cالفرز، والبحث، والإرجاع
- Dالتقسيم، والحل، والدمج
4.متوسطة
ما التعقيد الزمني لحساب عدد فيبوناتشي رقم n بجدول تصاعدي (من الأسفل إلى الأعلى)؟
- AO(n)
- BO(n²)
- CO(log n)
- DO(2ⁿ)
5.متوسطة
لماذا لا تعطي البرمجة الديناميكية تسريعًا حقيقيًا للفرز بالدمج؟
- Aلأن مسائله الفرعية لا تتداخل، فلا شيء يُعاد استخدامه
- Bلأن الفرز بالدمج ليس له بنية عودية
- Cلأن البرمجة الديناميكية لا تعمل إلا على مسائل الرسوم البيانية، لا على المصفوفات
- Dلأن الفرز بالدمج O(n) أصلًا
6.متوسطة
كم مساحة مكدّس تستخدم دالة مضروب عودية بسيطة fact(n) = n × fact(n − 1)؟
- AO(n²)
- BO(1)
- CO(n)
- DO(log n)
7.صعبة
كيف تُقارَن n! و2ⁿ عندما تكون n كبيرة؟
- An! هي O(n²)
- Bتنموان بالمعدل نفسه
- C2ⁿ تنمو أسرع من n!
- Dn! تنمو أسرع من 2ⁿ
8.صعبة
لماذا يحتاج أي بحث قائم على المقارنة في مصفوفة مرتبة إلى Ω(log n) مقارنة في أسوأ الحالات؟
- Aلأن البحث الثنائي هو الخوارزمية الوحيدة الممكنة، وهو يحتاج إلى log₂ n مقارنة
- Bلأن شجرة قرار لها n نتيجة ممكنة يجب أن يكون عمقها log₂ n على الأقل
- Cلأن كل عنصر يجب أن يُقارَن مرة واحدة على الأقل
- Dلأن كل مقارنة تستغرق زمنًا لوغاريتميًا
مفتاح الإجابات
- 1. A · تخزين نتائج استدعاءات الدوال ليُجاب عن الاستدعاءات المكررة من الذاكرة
- 2. D · O الكبير (Big O)
- 3. D · التقسيم، والحل، والدمج
- 4. A · O(n)
- 5. A · لأن مسائله الفرعية لا تتداخل، فلا شيء يُعاد استخدامه
- 6. C · O(n)
- 7. D · n! تنمو أسرع من 2ⁿ
- 8. B · لأن شجرة قرار لها n نتيجة ممكنة يجب أن يكون عمقها log₂ n على الأقل
حلول كاملة خطوة بخطوة: تدرّب على هذا الموضوع في examproblems.com.