1.سهلة
ما التذكير (Memoisation)؟
- Aتحرير الذاكرة بعد عودة الدالة
- Bتخزين نتائج استدعاءات الدوال ليُجاب عن الاستدعاءات المكررة من الذاكرة
- Cكتابة تعليقات بجانب كل سطر من الشيفرة
- Dتحويل العودية إلى حلقة مكافئة تلقائيًا فلا حاجة إلى مكدّس استدعاءات
2.سهلة
أي استراتيجية تصميم يستخدمها الفرز بالدمج؟
- Aالاختيار الجشع
- Bفرّق تسُد
- Cالبرمجة الديناميكية
- Dالقوة الغاشمة
3.سهلة
ما التعقيد المعتاد لخوارزمية فيها حلقتان متداخلتان تُنفَّذ كل منهما n مرة؟
- AO(2n)
- BO(n²)
- CO(log n)
- DO(n)
4.متوسطة
في مسألة اختيار الأنشطة، أي قاعدة جشعة تعطي دائمًا أكبر عدد من الأنشطة غير المتداخلة؟
- Aاختر النشاط الذي يبدأ أبكر
- Bاختر أقصر نشاط أولًا
- Cاختر النشاط الأقل تداخلًا أولًا، ثم كرّر مع الأنشطة المتوافقة
- Dاختر النشاط الذي ينتهي أبكر، ثم كرّر مع الأنشطة المتوافقة
5.متوسطة
ما التعقيد الزمني لـ: for i = 1 to n: (j = 1; while j < n: j = j × 2)؟
- AO(n log n)
- BO(log n)
- CO(n)
- DO(n²)
6.متوسطة
ما حل علاقة التكرار T(n) = 2T(n/2) + O(1)؟
- AO(n log n)
- BO(n²)
- CO(log n)
- DO(n)
7.صعبة
لماذا قد تعطي خوارزمية Dijkstra نتائج خاطئة حين تكون بعض أوزان الحواف سالبة؟
- Aلأن الأعداد السالبة لا يمكن تخزينها في طابور أولويات
- Bلأنها تدخل في حلقة لا نهائية عند كل حافة سالبة
- Cلأنها لا تعمل إلا على الرسوم البيانية غير الموجهة
- Dلأن الرأس يُثبَّت نهائيًا عند استخراجه، لكن حافة سالبة لاحقة قد تعطيه مسارًا أقصر
8.صعبة
تضرب خوارزمية ستراسن المصفوفات باستخدام 7 بدل 8 عمليات ضرب عودية لكتل نصف الحجم. ما زمن تنفيذها؟
- AΘ(n² log n)
- BΘ(nlog₂ 7)، أي نحو n2,81
- CΘ(n2)
- DΘ(n³)
مفتاح الإجابات
- 1. B · تخزين نتائج استدعاءات الدوال ليُجاب عن الاستدعاءات المكررة من الذاكرة
- 2. B · فرّق تسُد
- 3. B · O(n²)
- 4. D · اختر النشاط الذي ينتهي أبكر، ثم كرّر مع الأنشطة المتوافقة
- 5. A · O(n log n)
- 6. D · O(n)
- 7. D · لأن الرأس يُثبَّت نهائيًا عند استخراجه، لكن حافة سالبة لاحقة قد تعطيه مسارًا أقصر
- 8. B · Θ(nlog₂ 7)، أي نحو n2,81
حلول كاملة خطوة بخطوة: تدرّب على هذا الموضوع في examproblems.com.