الخوارزمية هي تعليمات واضحة، إذا نفّذتَ خطواتها بالترتيب وصلتَ إلى الحل. ولا يشترط أن ترتبط بالحاسوب؛ فوصفة الطبخ نوع من الخوارزميات.

مثال بسيط#

افترض أنك تريد إيجاد أكبر رقم بين خمسة أرقام:

  1. اعتبر الرقم الأول «الأكبر حتى الآن».
  2. انتقل إلى الرقم التالي.
  3. إذا كان أكبر من الأكبر الحالي، فليحلّ محلّه.
  4. واصل حتى نهاية القائمة.

هذه الخطوات الأربع خوارزمية كاملة. والحاسوب يفعل الشيء نفسه تماماً، لكن بسرعة أكبر بكثير.

ما الذي يجعل الخوارزمية جيدة#

  • صحيحة: تعطي الجواب الصحيح لجميع المدخلات المسموح بها.
  • منتهية: تنتهي في النهاية ولا تعلق في حلقة لا نهاية لها.
  • كفؤة: يبقى الزمن والذاكرة المستهلكان معقولَين مع ازدياد حجم البيانات.

يستخدم المبرمجون مفهوماً يُسمّى «التعقيد الزمني» لقياس الكفاءة؛ فالبحث عن اسم في قائمة مرتبة بطريقة التنصيف أسرع كثيراً من تصفحها عنصراً عنصراً.

أين تصادفها#

عندما تقترح خرائط جوجل أقصر طريق، وعندما يرتّب إنستغرام المنشورات، وعندما يعرض المتجر الإلكتروني منتجات مشابهة، تعمل خوارزمية خلف الكواليس.

خطأ شائع#

الخوارزمية ليست هي «البرنامج». الخوارزمية فكرة لحل المشكلة، والبرنامج هو تنفيذ هذه الفكرة بلغة برمجة محددة. ويمكن كتابة الخوارزمية نفسها بلغة بايثون أو جافا سكريبت أو أي لغة أخرى.