الخوارزميات

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث

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

وتنسب كلمة (خوارزمية) إلى عالم الرياضيات المسلم محمد بن موسى الخوارزمي صاحب كتاب (الكتاب المختصر في الجبر والمقابلة).

تقدّم الخوارزميات حلولًا لمسائل كثيرة ومتنوعة منها:

  • أحرز مشروع الجينوم البشري تقدّمًا هائلًا في تشخيص جينات الإنسان التي يصل عددها إلى 100,000 جين وتحديد تسلسل 3 بلايين من الأزواج الكيميائية التي تشكّل الدنا البشري، وتحتاج عملية تخزين هذه البيانات وتحليلها والتعامل معها إلى خوارزميات معقدة.
  • حماية خصوصية المستخدم ومعلوماته الشخصية مثل رقم بطاقة الائتمان وكلمات المرور وغيرها من الأمور الضرورية في مجال التجارة الإلكترونية، وتستند تقنيات التشفير وتعمية البيانات على خوارزميات رياضية وعلى نظرية الأرقام.
  • تستخدم الخرائط الإلكترونية خوارزميات خاصة لتحديد المسافة الأقصر بين نقطتين يختارهما المستخدم على الخريطة.

بنى المعطيات

بنى المعطيات Data Structures هي الطريقة المتبعة في ترتيب البيانات في الحاسوب بحيث يمكن استخدامها بفعالية، والهدف من بنى المعطيات هو اختزال المساحة والتعقيد الزمني المطلوب للمهام المختلفة.

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

هناك الكثير من الأمور المهمة التي يجب الاعتناء بها عند كتابة الخوارزميات منها الأمان وسهولة الاستخدام والقدرة على التطوير وغيرها، ولكنّ الأهم من كلّ ذلك هو أداء الخوارزمية؛ والسبب في ذلك هو أنّ كل ما سبق هو نتيجة حتمية لأداء الخوارزمية.

أساليب الخوارزميات

أساليب الخوارزميات Algorithm Paradigms هي مجموعة من النماذج وأطر العمل التي يستند عليها في بناء وتصميم مجموعة معينة من الخوارزميات.

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

تتحقق خوارزميات البحث من وجود عنصر معين أو تعيد عنصرًا معيّنًا من بنية المعطيات التي يكون العنصر مخزّنًا فيها.

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

خوارزميات الترتيب Sorting Algorithms هي خوارزميات تستخدم لإعادة ترتيب مصفوفة معطاة أو قائمة من العناصر بالاعتماد على عامل مقارنة معيّن. يُستخدم عامل المقارنة لتحديد ترتيب العناصر الجديد في بنية المعطيات المراد إعادة ترتيب عناصرها.

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

تعدّ خوارزميات البحث عن النصوص (وتسمّى كذلك بخوارزميات البحث عن الأنماط Pattern Searching) جزءًا من خوارزميات النصوص String Algorithms، وتساعد هذه الخوارزميات في البحث عن سلسلة نصية معيّنة في سلسلة نصية أخرى.

خوارزميات الرسوم البيانية

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

الخوارزميات الرياضية

تعنى الخوارزميات الرياضية بإيجاد أسرع الحلول الممكنة للمسائل الرياضية المختلفة باستخدام قوانين وعلاقات رياضية معروفة.

الخوارزميات الهندسية

تعنى الخوارزميات الهندسية Geometric Algorithms بإيجاد الحلول المناسبة للمسائل الهندسية المختلفة.

خوارزميات الأعداد الثنائية

تستخدم خوارزميات الأعداد الثنائية (البتات) Bitwise Algorithms لتنفيذ عمليات على مستوى البت bit-level أو لإجراء تعديلات على البتات وبطرق مختلفة.

الخوارزميات العشوائية

الخوارزمية العشوائية هي الخوارزمية التي تستخدم عددًا عشوائيًا لتقرّر الخطوة التالية في سير عملها.

التعاود

تسمى العملية التي تستدعي الدالة فيها نفسها استدعاءً مباشرًا أو غير مباشر بالتعاود recursion، وتسمى هذه الدالة بالدالة التعاودية recursive function.