Skip links
لغة برمجة مكتوبة على شاشة سوداء وتظهر كلمة مهام مكتوبة باللغة الإنكليزية

مفاهيم أساسية في الخوارزميات

الرئيسية » المقالات » تكنولوجيا » مفاهيم أساسية في الخوارزميات

تدقيق لغوي: أ. موانا دبس

تُعتبر الخوارزميات (بنى المعطيات) من الأساسيات المهمة حتى تصبح مهندس معلوماتية، لكن يجب عليك بدايةً أن تتمكن من المبادئ الأساسية في البرمجة، فليس مهماً لغة البرمجة التي تتقنها، لأنه يمكنك إنجاز الخوارزميات باستخدام أي لغةٍ برمجيةٍ تجيدها.

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

التعريف العلمي للخوارزميات

الخوارزمية عبارةٌ عن توصيفٍ صوري على شكل سلسلةٍ متتالية منتهية من التعليمات، والخطوات التي تنفذ وفق ترتيبٍ معينٍ يهدف إلى تحقيق مهمةٍ ما، ومن أجل التعبير عن الخوارزمية نستخدم لغةً بسيطةً تسمّى (Pseudo Code)، حيث تعتبر هذه اللغة مستقلةً عن لغات البرمجة الاعتيادية التي نستخدمها عادةً في إنجاز الخوارزميات. [1]

تاريخ استخدام الخوارزميات

ظهر مفهوم الخوارزميات قبل ظهور الحاسوب بآلاف السنين، وأول توصيفٍ صوري من أجل حلّ بعض المعادلات وضعه البابليون، جاءت كلمة خوارزمية من اسم الرياضي العربي أبو جعفر محمد بن موسى الخوارزمي (ولديه كتب عديدة في الرياضيات)، وتعتبر كتبه مرجعاً ثميناً للعلماء. يمكننا القول إن كل إنسان، ومنذ القدم كان يستخدم الخوارزميات لوضع طريقةٍ من أجل حلّ مسألةٍ معينة من هذه المسائل: [2]

● حل معادلات من الدرجة الثانية.

● خوارزمية إقليدس من أجل إيجاد القاسم المشترك الأكبر لعددين صحيحين GCD.

ومع تطور التكنولوجيا أصبحت الخوارزميات تتعامل مع معطياتٍ غير رقمية، مثل:

● خوارزميات البحث.

● خوارزميات الفرز.

● الخوارزميات التراجعية العودية.

خوارزميات البحث

تستخدم خوارزميات البحث من أجل تحديد مكان عنصرٍ معين أو مجموعةٍ من العناصر ضمن مجموعةٍ كبيرةٍ من قواعد البيانات أو البحث عن حروفٍ معينة ضمن نصٍّ كبير، حيث يوجد لدينا أنواع من خوارزميات البحث كالتالي:

1- خوارزمية البحث الثنائي

عندما يكون لديك قائمة (مصفوفة) تحوي عناصر مرتبة يمكنك استخدام خوارزمية البحث الثنائي (Binary search algorithm) من أجل البحث عن عنصرٍ معين، وذلك من خلال التقسيم المتكرر إلى النصف من كل قائمة، حتى تتوصل إلى قائمةٍ تحوي موقع عنصراً واحداً فقط.  [3]

ميزات خوارزمية البحث الثنائي

1- البيانات مُصنّفة ومرتبة.

2- إمكانية الوصول إلى أي عنصرٍ تريده.

3- الكفاءة من حيث الزمن.

4- إمكانية تنفيذه بشكلٍ متكرر.

2- خوارزمية العمق الأول

هذه الخوارزمية تعتمد على الرسم البياني أو الرسم الشجري الذي يبدأ من الجذر، وتستخدم خوارزمية العمق الأول (Depth-first algorithm) من أجل البحث، أو التنقل ضمن جميع رؤوس الشجرة، أو الرسم البياني. [4]

ميزات خوارزمية العمق الأول

1- يمكن استخدامها في تطبيقات الذكاء الاصطناعي.

2- مناسبة لمختلف المشكلات.

3- خوارزمية البحث الخطي

خوارزمية البحث الخطي (Linear search algorithm) تُعتبر بسيطةً من أجل العثور على عنصرٍ محدّدٍ داخل قائمةٍ كبيرة من البيانات، وتكون طريقة البحث كالتالي: يتمُّ فحص كل عنصرٍ من عناصر القائمة بشكلٍ تسلسلي حتى يتمّ العثور على العنصر المراد أو حتى الوصول إلى نهاية القائمة.

ميزات خوارزمية البحث الخطي

1- تعتبر خوارزمية بسيطة من السهل فهم طريقة عملها، وطريقة تنفيذها.

2- لا تتطلب ذاكرةً إضافية.

3- يمكن تنفيذها على أي نوعٍ من البيانات.

4- يفضل استخدامها عند التعامل مع بياناتٍ صغيرة.

4- خوارزمية البحث الموسع

يمكنك اعتماد هذا النوع من الخوارزميات عندما تتعامل مع مساحاتٍ كبيرةٍ من البيانات، لأن خوارزمية البحث الموسع (Extended search algorithm) قادرةٌ على إدارة مساحات الحالة الكبيرة التي من الممكن أن تواجهها خوارزميات البحث التقليدية.

ميزات خوارزمية البحث الموسع

1- توفير الوقت والذاكرة.

2- ضمان العثور على الحل في حال كان موجوداً.

3- تمتاز بكفاءةٍ عالية أكثر من خوارزميات البحث غير المدروسة.

4- تعتبر مميزةً عند مواجهة مشاكل تتعلق بالمساحة الكبيرة.

5- يتمُّ استخدامها في مجال الألعاب، والذكاء الاصطناعي.

خوارزميات الفرز

نستخدم خوارزميات الفرز عندما يكون لدينا سلسلة تتكون من الأرقام أو الأحرف، ونريد إعادة ترتيبها بترتيبٍ معين (تصاعدي أو تنازلي)، ويوجد لدينا أنواع من خوارزميات الفرز: [5]

1- خوارزمية الفرز السريع

مهمة خوارزمية الفرز السريع (Quick sort algorithm) ترتيب المصفوفات التي تحتوي عناصر بشكلٍ تصاعدي أو تنازلي من خلال تقسيم المصفوفة إلى قسمين من خلال عنصر محوري، ويتمُّ تكرار العملية حتى نصل إلى المطلوب.

ميزات خوارزمية الفرز السريع

1- تعدُّ أسرع من خوارزميات الفرز بالدمج، وفرز الكومة عندما تطبق على بيانات كبيرة.

2- تعتبر سهلةً لأنها تستخدم مبدأ التقسيم المتكرر.

3- تستخدم في مجالات تطوير البرمجيات.

2- خوارزمية فرز الكومة

تستخدم خوارزمية فرز الكومة (Heap sort algorithm) من أجل المقارنة بين العناصر داخل المصفوفة التي تتألف من العناصر.

ميزات خوارزمية فرز الكومة

1- سهلة الاستخدام، لذلك يمكننا استخدامها في العديد من لغات البرمجة،

2- لا تحتاج إلى ذاكرةٍ كبيرة.

3- تستخدم من أجل العثور على أكبر عنصرٍ من عناصر مصفوفة.

3- خوارزمية فرز التحديد

تُعتبر خوارزمية فرز التحديد (Selection sort algorithm) سهلة الاستخدام والتنفيذ، لكنها ليست الأكثر كفاءة، حيث تتمُّ طريقة تنفيذها باختيار أصغر عنصر من قسم غير مرتب في القائمة التي نطبق عليها الخوارزمية، ويتمُّ وضع العنصر في القسم المرتب.

ميزات خوارزمية فرز التحديد

1- سهلة التنفيذ لأنها بسيطة.

2- سهلة للمبتدئين في تعلم البرمجة والخوارزميات.

مكونات الخوارزمية من أجل حل أي مسألة برمجية

● المتغيرات.

● التعليمات.

● المتتاليات.

● الإجرائيات.

● الاختيارات.

● التكرارات.

● التوثيق.

المراجع البحثية

1- GfG. (2023، August 3). What is Algorithm Introduction to Algorithms. GeeksforGeeks. Retrieved February 26، 2024

2- algorithm. (2024). In Merriam-Webster Dictionary. Retrieved February 26، 2024

3- Binary search (article) | Algorithms | Khan Academy. (n.d.). Retrieved February 26، 2024

4- Depth First Search (DFS) algorithm. (n.d.). Retrieved February 26، 2024

5- GfG. (2023، October 16). QuickSort Data structure and algorithm tutorials. GeeksforGeeks. Retrieved February 26، 2024

This website uses cookies to improve your web experience.