تقييم الدرس 6
فرّق تسُد: البحث الثنائي
أجب عن الأسئلة ثم اضغط «صحّح ورقتي» في آخر الصفحة. ← العودة إلى الدرس
أسئلة التقييم
تقييم الدرس 6: فرّق تسُد: البحث الثنائي. إجاباتك تُحفظ تلقائيًّا على هذا الجهاز؛ أجب ثم اضغط «صحّح ورقتي».
1السؤال الأول: اختر الإجابة الصحيحة
1) ماذا يطبع البرنامج؟
import bisectprint(bisect.bisect_left([2, 4, 6, 8, 10], 8))
2) في القائمة
[5, 9, 14, 20, 31] أول عنصر يفحصه البحث الثنائي:3) أقصى عدد مقارنات للبحث الثنائي في 1,000,000 عنصر تقريبًا:
4) ما الخطأ؟
while lo <= hi: mid = (lo + hi) // 2 if a[mid] == x: return mid elif a[mid] < x: lo = mid else: hi = mid - 1
5) خوارزمية تقسم المسألة إلى مسائل أصغر من النوع نفسه وتجمع حلولها:
2السؤال الثاني: صح أم خطأ
1) البحث الثنائي يعمل على أي قائمة مرتبة أو غير مرتبة.
الصواب: خطأ
2) في كل خطوة من البحث الثنائي يُستبعد نحو نصف المجال.
الصواب: صح
3) مضاعفة حجم القائمة تزيد خطوات البحث الثنائي خطوة واحدة تقريبًا.
الصواب: صح
4) البحث الثنائي أبطأ من الخطي في القوائم الكبيرة.
الصواب: خطأ
3السؤال الثالث: أكمل الفراغات من القائمة المنسدلة
1) عدد خطوات البحث الثنائي يقارب .
الإجابة: log₂ n
2) مكتبة البحث الثنائي الجاهزة في بايثون: .
الإجابة: bisect
3) شرط الحلقة الصحيح في البحث الثنائي:
while lo hi.الإجابة: <=
4السؤال الرابع: أسئلة عملية
1) ما ناتج البرنامج؟
a = [2, 5, 9, 14, 20, 27, 33]lo, hi = 0, len(a) - 1steps = 0while lo <= hi: mid = (lo + hi) // 2 steps += 1 if a[mid] == 27: break elif a[mid] < 27: lo = mid + 1 else: hi = mid - 1print(mid, steps)
الناتج الصحيح:Shell×
5 2
أجب عن الأسئلة ثم اضغط «صحّح ورقتي».