1- البحث المتسلسل:
في هذا ، يتم اجتياز القائمة أو المصفوفة بالتسلسل ويتم فحص كل عنصر. على سبيل المثال: البحث الخطي
2- البحث الفاصل:
تم تصميم هذه الخوارزميات خصيصا للبحث في هياكل البيانات المصنفة، يعد هذا النوع من خوارزميات البحث أكثر فاعلية حيث يستهدف بشكل متكرر مركز بنية البحث
في هذا ، يتم اجتياز القائمة أو المصفوفة بالتسلسل ويتم فحص كل عنصر. على سبيل المثال: البحث الخطي
2- البحث الفاصل:
تم تصميم هذه الخوارزميات خصيصا للبحث في هياكل البيانات المصنفة، يعد هذا النوع من خوارزميات البحث أكثر فاعلية حيث يستهدف بشكل متكرر مركز بنية البحث
♦️ أمثلة لخوارزميات البحث:
1- Linear Search
2- Binary Search
3- Quickselect Algorithm
4- Hash table
5- Naïve string search or pattern matching algorithm (brute force)
6- Knuth, Morris and Pratt (KMP)
7- Binary trees
1- Linear Search
2- Binary Search
3- Quickselect Algorithm
4- Hash table
5- Naïve string search or pattern matching algorithm (brute force)
6- Knuth, Morris and Pratt (KMP)
7- Binary trees
خطوات إجراء البحث الثنائي هي:
- ابدأ بالعنصر الأوسط للمجموعة بأكملها كمفتاح بحث
- إذا كانت قيمة مفتاح البحث مساوية للعنصر، فقم بإرجاع فهرس مفتاح البحث
- أو إذا كانت قيمة مفتاح البحث أقل من العنصر الموجود في منتصف الفترة الزمنية، فقم بتضييق الفاصل الزمني إلى النصف السفلي
- ابدأ بالعنصر الأوسط للمجموعة بأكملها كمفتاح بحث
- إذا كانت قيمة مفتاح البحث مساوية للعنصر، فقم بإرجاع فهرس مفتاح البحث
- أو إذا كانت قيمة مفتاح البحث أقل من العنصر الموجود في منتصف الفترة الزمنية، فقم بتضييق الفاصل الزمني إلى النصف السفلي
- خلاف ذلك، قم بتضييقه إلى النصف العلوي
- تحقق بشكل متكرر من النقطة الثانية حتى يتم العثور على القيمة أو يصبح الفاصل الزمني فارغًا
- تحقق بشكل متكرر من النقطة الثانية حتى يتم العثور على القيمة أو يصبح الفاصل الزمني فارغًا
3- Quickselect Algorithm (O(n)):
يستخدم Quickselect نفس الأسلوب العام مثل Quicksort، واختيار عنصر واحد كمحور وتقسيم البيانات إلى عنصرين بناءً على المحور، وفقًا لذلك على أنها أقل من أو أكبر من المحور
يستخدم Quickselect نفس الأسلوب العام مثل Quicksort، واختيار عنصر واحد كمحور وتقسيم البيانات إلى عنصرين بناءً على المحور، وفقًا لذلك على أنها أقل من أو أكبر من المحور
ومع ذلك، بدلاً من الرجوع إلى كلا الجانبين كما هو الحال في Quicksort، يتكرر التحديد السريع فقط في جانب واحد باستخدام عنصر البحث الخاص به
نظرًا لأن المحور في موضعه الفرز النهائي، فإن كل من يسبقه بترتيب غير مصنف، وكل من يتابعه بترتيب غير مصنف
نظرًا لأن المحور في موضعه الفرز النهائي، فإن كل من يسبقه بترتيب غير مصنف، وكل من يتابعه بترتيب غير مصنف
تطبيقاته:
- البحث عن الكلمات الأساسية في ملف
- محركات البحث
- البحث في قاعدة البيانات
- البحث عن الكلمات الأساسية في ملف
- محركات البحث
- البحث في قاعدة البيانات
الفكرة الأساسية وراء خوارزمية KMP هي:
عندما نكتشف عدم تطابق (بعد بعض التطابقات)، فإننا نعرف بالفعل بعض الأحرف في نص النافذة التالية
نحن نستفيد من هذه المعلومات لتجنب مطابقة الأحرف التي نعرف أنها ستتطابق على أي حال
عندما نكتشف عدم تطابق (بعد بعض التطابقات)، فإننا نعرف بالفعل بعض الأحرف في نص النافذة التالية
نحن نستفيد من هذه المعلومات لتجنب مطابقة الأحرف التي نعرف أنها ستتطابق على أي حال
- يجب أن تكون كل من الشجرة الفرعية اليمنى واليسرى عبارة عن شجرة بحث ثنائية
يطلق عليها شجرة البحث لأنه يمكن استخدامها للبحث عن وجود رقم في وقت O (log (n))
يطلق عليها شجرة البحث لأنه يمكن استخدامها للبحث عن وجود رقم في وقت O (log (n))
هل تعلمت شيء جديد؟ لا تنس اعادة التغريد حتى يستفيد الجميع🙏
جاري تحميل الاقتراحات...