
- بواسطة x32x01 ||
يعنى ايه Binary Search وليه الشركات الكبيرة بتستخدمه؟
كوباية الشاي بتاعتك جاهزة؟ 
يلا بينا نفهم مع بعض Binary Search وايه الفرق بينها وبين Linear Search وليه معظم الشركات الكبيرة بتعتمدها في البرمجة وإدارة البيانات الكبيرة.
Binary Search هي واحدة من أهم طرق البحث في البرمجة، خصوصًا لما يكون عندك مجموعات بيانات كبيرة وعايز تلاقي عنصر معين بسرعة وبدون هدر وقت.
Linear Search وBinary Search: الفرق بينهم
خلينا نبدأ بمثال عملي:عندك كتاب صفحاته من 1 لحد 100، وعايز تقرأ حاجة موجودة في صفحة 78، إزاي هتدور عليها؟
الطريقة الأولى (Linear Search):
- تمسك الكتاب من الأول وتشوف كل صفحة على حدة
- لو مش الصفحة اللي انت عايزها، تروح للصفحة اللي بعدها وتقارن تاني
- هتفضل تعمل كده لحد ما تلاقي الصفحة المطلوبة
- العيب هنا إنك ممكن تضطر تمشي على معظم صفحات الكتاب، وده بياخد وقت طويل
الطريقة الثانية (Binary Search):
- تروح للصفحة اللي في نص الكتاب، مثلا صفحة 50
- تقارن رقم الصفحة المطلوبة (78) بالصفحة اللي انت فيها
- هتلاقي الصفحة المطلوبة أكبر من رقم الصفحة اللي انت فيها
- يعني مستحيل تكون الصفحة المطلوبة في نص الكتاب الأول (صفحات 1-49)
- كده تقدر تستبعد نص الكتاب الأول وتبحث في النص التاني
- تروح لنص النص التاني (صفحة 75 مثلا) وتقارن تاني
- هتكرر العملية لحد ما تلاقي الصفحة المطلوبة
تحويل المثال لData Structure
اللي عملناه في المثال ده بيتسمى في البرمجة:- الطريقة الأولى: Linear Search
- الطريقة الثانية: Binary Search
- مجموعة البيانات اللي هتبحث فيها لازم تكون مرتبة
- زي الكتاب بالظبط، الصفحات من 1 لحد 100
Time Complexity لكل طريقة
الـ Time Complexity هي المقياس اللي بيحددلك سرعة البحث حسب حجم البيانات.Linear Search:
- يعني لو عندك 1000 عنصر، ممكن تحتاج تقارن كل العناصر واحد واحد لحد ما تلاقي المطلوب
- Binary Search: (log n)
- لو عندك 1000 عنصر، هتلاقي العنصر المطلوب بعد حوالي 10 خطوات بس!
كود مثال Binary Search بلغة Python
لو عايز تشوف Binary Search شغال على Array، ممكن تستخدم الكود ده: Python:
def binary_search(arr, target):
low = 0
high = len(arr) - 1
while low <= high:
mid = (low + high) // 2
if arr[mid] == target:
return mid
elif arr[mid] < target:
low = mid + 1
else:
high = mid - 1
return -1
# مثال
numbers = [1, 3, 5, 7, 9, 11, 13, 15, 17, 19]
print(binary_search(numbers, 11)) # هيرجع 5
كود مثال Binary Search بلغة JavaScript
JavaScript:
function binarySearch(arr, target) {
let low = 0;
let high = arr.length - 1;
while (low <= high) {
let mid = Math.floor((low + high) / 2);
if (arr[mid] === target) return mid;
else if (arr[mid] < target) low = mid + 1;
else high = mid - 1;
}
return -1;
}
// مثال
let numbers = [1, 3, 5, 7, 9, 11, 13, 15, 17, 19];
console.log(binarySearch(numbers, 11)); // هيرجع 5
مميزات Binary Search
- سرعة عالية مقارنة بـ Linear Search
- فعالة جدًا مع مجموعات بيانات كبيرة
- مناسبة للبرمجة اللي بتحتاج بحث مستمر على بيانات مرتبة
عيوب Binary Search
- البيانات لازم تكون مرتبة
- أصعب شويه في التنفيذ من Linear Search لو المبتدئ لسه بيتعلم البرمجة
- مش مناسبة للبيانات اللي حجمها صغير جدًا
استخدام Binary Search في الشركات الكبيرة
معظم شركات البرمجة الكبيرة زي Google وFacebook وAmazon بتستخدم Binary Search لأنها:- بتوفر وقت البحث في قواعد بيانات ضخمة
- بتقلل استهلاك الموارد والمعالج
- بتساعد المطورين يكتبوا برامج أسرع وأكثر كفاءة
نصايح لتطبيق Binary Search صح
- دايمًا تأكد إن البيانات مرتبة قبل استخدام Binary Search
- استخدمه مع Arrays وLists الكبيرة
- لو عندك مجموعة صغيرة جدًا، Linear Search أحيانًا بيكون أسهل

Linear Search كويس للبيانات الصغيرة، بس لما البيانات تكبر، Binary Search هيوفر وقت ومجهود كبير جدًا.
التعديل الأخير: