السلام عليكم ورحمة الله :blush:
أنا اول سمستر أدرس فيه برمجة ..
وواجهني سؤال ماعرفت إجابته .. بخصوص الباينري سيرش :(
أحتاج شرح للاكواد ذي وايش الفايدة منها X_x
ضروري :(
هذي الدالة لخوارزمية البحث الثنائي binary search، فكرتها أنه إذا كان عندك مصفوفة مرتبة كالتالي:
[ 12 15 30 35 40 69 98 100 499 698 992 1004 ]
وتريدين البحث عن مكان عنصر في المصفوفة، فلا حاجة للمرور على كل العناصر، يمكنك المقارنة بين العنصر في الوسط (موقعه طول المصفوفة / 2 صحيح بدون فواصل)، المقارنة ستعطي ثلاث احتمالات:
مع كل دوره ستصغر دائرة البحث للنصف إلى أن تجدين العنصر أو يكون العنصر غير موجود أساساً.
البداية = 0
النهاية = 11
الوسط = (البداية + النهاية) ÷ 2 = 5
0 1 2 3 4 5 6 7 8 9 10 11
[ 12 15 30 35 40 69 98 100 499 698 992 1004 ]
^
15 اصغرالبداية = 0
النهاية = الوسط السابق = 5
الوسط = (البداية + النهاية) ÷ 2 = 2
0 1 2 3 4 5 6 7 8 9 10 11
[ 12 15 30 35 40 *************************** ]
^
15 اصغرالبداية = 0
النهاية = الوسط السابق = 2
الوسط = (البداية + النهاية) ÷ 2 = 1
0 1 2 3 4 5 6 7 8 9 10 11
[ 12 15 *************************************** ]
^
مساوي، وجدنا العنصر عند 1تم تعديل هذه المشاركة بواسطة Mr.B في 14 مايو 2014 في 00:10