طَبِّقْهاتعلّم المبدأ، وطبّقه بيدكمقرر 101 · تركيب البيانات والخوارزميات
تقييم الدرس 20

من O(n²) إلى O(n)

أجب عن الأسئلة ثم اضغط «صحّح ورقتي» في آخر الصفحة. ← العودة إلى الدرس

أسئلة التقييم

تقييم الدرس 20: من O(n²) إلى O(n). إجاباتك تُحفظ تلقائيًّا على هذا الجهاز؛ أجب ثم اضغط «صحّح ورقتي».

1السؤال الأول: اختر الإجابة الصحيحة

1) ماذا يطبع البرنامج؟
main.py
a = [3, 5, 2]p = [0]for x in a:    p.append(p[-1] + x)print(p)
2) بالمجاميع التراكمية p السابقة، مجموع العنصرين الأخيرين:
3) أفضل تعقيد لمعرفة هل في القائمة رقمان مجموعهما 100:
4) مجموع أعلى 3 أيام متتالية في [4, 1, 6, 3, 2, 7]:
5) أول خطوة قبل التحسين:

2السؤال الثاني: صح أم خطأ

1) النافذة المنزلقة تعيد جمع كل النافذة عند كل خطوة.
الصواب: خطأ
2) أسلوب المؤشرين من الطرفين يعمل على القوائم المرتبة.
الصواب: صح
3) التحسين الصحيح يعطي النتيجة نفسها للحل البسيط.
الصواب: صح
4) in على set داخل حلقة يجعل الحل O(n²).
الصواب: خطأ

3السؤال الثالث: أكمل الفراغات من القائمة المنسدلة

1) حساب prefix يتم مرة واحدة بتعقيد .
الإجابة: O(n)
2) عند انزلاق النافذة نضيف العنصر الداخل و .
الإجابة: نطرح الخارج
3) للبحث عن «المكمّل» target - p بسرعة نستخدم .
الإجابة: set

4السؤال الرابع: أسئلة عملية

1) ما ناتج البرنامج؟

main.py
a = [2, 7, 4, 9, 1]k = 2w = a[0] + a[1]best = wfor i in range(k, len(a)):    w += a[i] - a[i - k]    best = max(best, w)print(best)
الناتج الصحيح:
Shell×
13
أجب عن الأسئلة ثم اضغط «صحّح ورقتي».

📝 معلم؟ أرسل ملاحظة للمؤلف عن هذا الدرس