ماهي الخوارزميات وما انواعها
تعريف الخوارزميات
الخوارزمية هي طريقة أو صيغة لحل مشكلة ما بالاعتماد على سلسلة متواصلة من أفعال معينة. وعادة ما تعني الخوارزمية في علوم الرياضيات والكمبيوتر، طريقة صغيرة لحل مشكلة متكررة، ويمكن النظر إلى برنامج الحاسوب على أنه خوارزمية متقنة.
هي مجموعة من الخطوات والإجراءات المنطقية المتسلسلة التي تقوم بعملها لحل مشكلة ما أو عمل حسبة معينة ويمكن أيضا أن نقول انها خطة مكونة من خطوات منطقية لحل مشكلة أو عمل فكرة ما. وهي ليس لها علاقة بلغة برمجة معينة أنما هي خطوات فقط للتنفيذ ومن ثم الحصول على نتائج محددة ( Output ) من المعطيات المدخلة ( Inputs ). فمثلا عندما يطلب منك شخص عمل تطبيق معين أو حل مشكلة معينة فأول ما تفكر به هو كتابة استراتيجية معينة لعمل هذا الحل قبل البدأ بتنفيذها بواسطة ( لغة برمجة ) وهذه الاستراتيجية تسمى Algorithm
وجاءت تسمية “خوارزمية” من اسم عالم الرياضيات العربي محمد بن موسى الخوارزمي، الذي كان جزءًا من الأسرة الملكية في بغداد وعاش بين 780- 850 م.
تستخدم الخوارزميات على نطاق واسع في كل مجالات الـ IT أو (تقنية المعلومات). فمثلًا خوارزمية محرك البحث تقبل سلاسل بحث من الكلمات المفتاحية كمدخلات، وتبحث في قواعد بياناتها عن صفحات ويب ذات صلة، ثم تعيد النتائج.
وتقوم خوارزمية التشفير بتحويل البيانات بالاعتماد على أفعال محددة لحمايتها. فمثلًا خوارزمية سرية رئيسية مثل قاعدة تشفير بيانات وزارة الدفاع الأمريكية تستخدم المفتاح نفسه لتشفير البيانات وفك تشفيرها. وطالما أن الخوارزمية معقدة بشكل كاف فلا يقدر أي شخص لا يملك المفتاح على فك تشفيرها.
التسلسل: الخوارزمية عبارة عن مجموعة من المعلومات المتتابعة والتي قد تكون تلك التعليمات إما بسيطة وغير معقدة أو من النوعين التاليين.
الاختيار: لا يمكن حل بعض المشكلات بتسلسل بسيط من التعليمات، وقد تحتاج إلى اختبار بعض الشروط وإلقاء نظرة على نتيجة الاختبار، وإذا كانت النتيجة صحيحة، فاتبع مسارًا يحتوي على تعليمات متسلسلة، وإذا كانت خاطئة، فاتبع مسارًا آخر مسار مختلف للتعليمات، هذه الطريقة تسمى اتخاذ القرار أو الاختيار.
التكرار: عند حل بعض المشكلات، يجب تكرار نفس تسلسل الخطوات عدة مرات، هذا يسمى التكرار.
أنواع الخوارزميات
صنفت الخوارزميات حسب بنائها إلى 3 أنواع:
- التسلسل Sequence:
- يمتاز هذا النوع بوجود سلسلة من الخطوات، وينبغي إنجاز كل خطوة بالكامل واحدة بعد الأخرى.
- التفرع Branching:
- يتمثل هذا النوع بمشكلات من نوع (إذا كان الشرط صحيحًا سيكون الناتج A، وإذا كان الشرط غير صحيح، فإن الناتج سيكون B). ويعرف هذا النوع أيضًا باسم “نوع الاختيار selection”.
- الحلقة Loop:
- ويعرف أيضًا باسم “نوع التكرار repetition” وفيه قد يتكرر إنجاز العملية باستمرار تحت شروط معينة. لكن ينبغي التأكد من إنهاء العملية بعد عدد من التكرارات تحت الشروط.
- يوجد أنواعاً تكون عديدة من أعداد الخوارزميات، البعض يقوم بوصف الطريقة التي تُظهر بها تلك المهمة، والبعض الآخر منها تصف المهمة الخاصة بها، وتختلف اللغة التي تعبر عنها. هناك خوارزمية تدعى أو يتم تسميتها بالخوارزمية مماثلة أو مطابقة السلسلة وتكون على سبيل المثال، وإن هذه السلسلة تجد ظهور المدخلات في متسلسلات تكون أجزاء أو أكبر من النص. هناك نوع من أنواع الخوارزميات تكون موجودة وتعبر عن طريقة لكي يتم حل المسائل وهي تكون (divide and conquer algorithm وهي سلسلة تجد ظهور المدخلات في متسلسلات تكون أجزاء او أكبر من النص، ويكون البحث الثنائي هو مثال على هذه الخوارزمية. والبحث الثنائي يقوم بالبحث عن هدفٍ يكون به مدخلات مفرزة تكون من خلال تقسيم المدخلات لأجزاء صغيرة من أجل إيجاد الهدف، من الممكن امتداد واحد من أنواعها لكلا النوعين السابقين