الخوارزميات
تعّرف الخوارزميات في علوم الحاسب بأنها:
مجموعة من الأوامر لحل مشكلة معينة بشكل صحيح و بافضل كفاءة.
في الغالب يعبر عنها بـ pseudo code التي تحدد قبل بداية كتابة أي برنامج سواء كان ذهنيا أو كتابيا على ورق، لكن مع مرور الزمن و تطور العلم أصبح هناك خوارزميات ثابتة تستخدم لأغراض متعددة حسب احتياج البرنامج له.
مثال بسيط على pseudo code باللغة العربية :
- ادخل عددين.
- اختر العملية الحسابية.
- اضغط على زر احسب.
- قم بعملية الحساب.
- اطبع ناتج العملية على الشاشة.
هناك أشكال مختلفة لعرضه منها Flow chart تقوم بعرض و توضيح pseudo code بشكل رسومي.
من أشهر أنواع الخوارزميات التي تستخدم في عمليات البحث في المشاريع المختلفة هي:
- BFS) Breadth First Search) .
- DFS) Depth First Search) .
صورة توضح عملية BFS
(Breadth First Search (BFS :
BFS هي عبارة عن احدى الخوارزميات المستخدمة في عملية البحث و تعتبر أسرع بالنسبة لـ DFS ، تعتمد على tree graph (تكون البيانات منظمة على شكل tree) ، تبدأ بالبحث من root node و من ثم child node بالترتيب بينهم غالباً إن كانت البيانات المخزنة فيها من أحرف فيتم الترتيب بينها عن طريق الترتيب الأبجدي للحروف و إن كانت أرقاماً فتستخدم الترتيب التصاعدي لها في عملية البحث ، و يستمر البحث على نفس النهج مع child of inner node أي أبناء الأبناء وهكذا إلى أن يتم الحصول على البيانات المطلوبة ، هذا شرحها بشكل نظري و يفضل مشاهدة بعضا من مقاطع الفيديو عنها ليتم معرفتها بشكل أوضح.
و الآن ننتقل للنوع الثاني و هو:
(Depth First Search (DFS :
صورة توضح عملية DFS
DFS هي عبارة عن خوارزمية أيضاً غالبا تستخدم في عمليات البحث ، تعتمد على tree graph تبدأ بالبحث من root node و من ثم إلى أحد child منها إلى أن نصل إلى leaf node لـ child الأول ، فإن كان ما نبحث عنه لم نجده في leaf نقوم بالتراجع تدريجيا لـ parent of child إن كان له أخ نذهب إليه و إن لم يكن نصعد ل parent of parent ، و هكذا نفعل مع كل child في tree ، هذا شرحها بالمختصر و يمكنكم الاستزادة فيه في البحث عنه.
و من الأمثلة على خوارزميات تستخدم في عمليات البحث: Binary search ، و Linear search ، و Jump search ، يمكنك البحث عنها و الاطلاع على كيفية عملها عن كثب.
إليكم هذا التحدًي :
ابحث عن الحرف G باستخدام BFS و DFS و اكتب التسلسل الذي اتبعته ، و من ثم شاركنا اجابتك في التعليق .
أتمنى أنكم استمتعتم في هذا المقال ، موعدنا معكم في مقال جديد
التعليقات (0)
لايوجد لديك حساب في عالم البرمجة؟
تحب تنضم لعالم البرمجة؟ وتنشئ عالمك الخاص، تنشر المقالات، الدورات، تشارك المبرمجين وتساعد الآخرين، اشترك الآن بخطوات يسيرة !