ما هي الخوارزميات Algorithms ؟
الخوارزمية هي مجموعة تعليمات مفصلة خطوة بخطوة أو صيغة لحل مشكلة أو إكمال مهمة. في مجال الحوسبة، يكتب المبرمجون خوارزميات ترشد الكمبيوتر إلى كيفية أداء مهمة ما. ولتقريب المعنى للأذهان يمكنك تشبيه الخوارزمية البرمجية بوصفة الطعام التي تصف (المكونات المطلوبة، الخطوات لكيفية تحضير الوجبة الموصوفة، والنتائج)، فالخوارزمية هي الخطوات، وتسمى المكونات بالمدخلات (Inputs)، وتسمى النتائج بالمخرجات (Outputs). وعندما تفكر في الخوارزمية بالطريقة الأكثر عمومية (ليس فقط فيما يتعلق بالحوسبة)، فإن الخوارزميات موجودة في كل مكان.
والطريقة التي تستخدمها لحل مسائل الجمع أو القسمة المطولة هي خوارزمية، وعملية طي قميص أو زوج من البنطال هي خوارزمية. حتى الروتين الصباحي يمكن اعتباره خوارزمية. ومع ذلك، من المهم ملاحظة أن خوارزميات البرمجة ليست لغة برمجة، او حتى كود برمجي بل هي طريقة في التحليل و التفكير التي عليك اتباعها حتى تتمكن من كتابة الكود بشكل صحيح وتكون عادة مكتوبة بلغة إنجليزية بسيطة (أو أيًا كان ما يتحدث به المبرمج). وتتضمن فقط ما تحتاجه لتنفيذ المهمة، فلا تحتوي أي شيء غير واضح (غامضًا) كما يسمى في لغة الكمبيوتر.
فوائد الخوارزمية في برمجة الحاسوب:
تقليل من التعقيد complexity:
عندما يكتب المبرمج الخوارزمية والبرنامج كل منهم على حدا (بشكل منفصل)، فإنه سيسهل المهمة الكلية بتقسيمها إلى مهمتين أبسط. علاوة على ذلك، أثناء كتابة الخوارزمية، يمكننا التركيز على حل المشكلة بدلاً من التركيز على لغة معينة.
زيادة المرونة:
من أجل كتابة الكود بأي لغة، يكتب المبرمج خوارزمية. تمكن الخوارزمية المبرمج من كتابة البرنامج بأي لغة مثل (Visual Basic أو Java أو ++C).
سهولة الفهم:
لست بحاجة إلى فهم لغة برمجة معينة لفهم الخوارزمية. لأن المبرمج يكتبها باللغة الإنجليزية بطريقة مماثلة.
خصائص الخوارزميات:
الدقة: الخطوات وتفاصيل المدخلات والمخرجات يجب ان تكون مذكورة بدقة (محددة).
التفرد: يتم تحديد نتائج كل خطوة بشكل فريد وتعتمد فقط على المدخلات ونتائج الخطوات السابقة.
المدخلات: تستقبل الخوارزمية المدخلات.
المخرجات: الخوارزمية تنتج المخرجات.
العمومية: تنطبق الخوارزمية على مجموعة من المدخلات.
الفعالية: ان تكون فعالة عند استخدامها لحل المشكلة البرمجية.
الوضوح: يجب ان تكون كل خطوة مكتوبة بطريقة واضحة ومعبرة وخالية من الغموض.