صادم! جميع عمليات البحث الثنائي وفرز الاندماج تقريبًا معطلة

2025-01-11
صادم! جميع عمليات البحث الثنائي وفرز الاندماج تقريبًا معطلة

كشف مهندس البرمجيات في جوجل، جوشوا بلوخ، عن خطأ عمره ما يقرب من عقدين من الزمن كامن في خوارزميات البحث الثنائي، تم العثور عليه في كل من JDK وكتاب "لآلئ البرمجة" لجون بنتلي! ينبع الخطأ من السطر `int mid = (low + high) / 2;`، مما يتسبب في تجاوز سعة الأعداد الصحيحة واستثناءات مؤشر المصفوفة خارج الحدود عندما يتجاوز مجموع `low` و `high` الحد الأقصى لقيمة الصحيح الموجبة. لا يظهر هذا الخطأ إلا مع مجموعات البيانات الضخمة، مما يجعله خطيرًا بشكل خاص في عصر البيانات الضخمة. يستكشف المقال عدة حلول ويشدد على أن الأخطاء قد تستمر حتى مع الاختبارات والإثباتات الصارمة، مما يحث المبرمجين على توخي الحذر والتواضع.