ما هو البحث الثنائي في جافا؟ كيف يتم تنفيذه؟

Binary Search في Java هو خوارزمية بحث تعثر على موضع القيمة المستهدفة داخل مصفوفة مرتبة. في هذه المقالة سأخبرك بكيفية تنفيذها بمساعدة مثال.

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

يتم تناول الموضوعات أدناه في هذه المقالة:





هيا بنا نبدأ!

ما هو البحث الثنائي؟

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



برنامج البحث الثنائي في Java - بحث ثنائي في Java - Edurekaعندما تُستخدم لإجراء عمليات على مجموعة تم فرزها ، يمكن دائمًا تقليل عدد التكرارات على أساس القيمة التي يتم البحث عنها. يمكنك أن ترى في اللقطة أعلاه للعثور على ملف منتصف العنصر . تشبيه البحث الثنائي هو استخدام المعلومات التي تم فرز المصفوفة وتقليل التعقيد الزمني عليها O (تسجيل ن) .

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

دعونا نلقي نظرة على الكود الزائف أدناه لفهمه بطريقة أفضل.

إجراء binary_search A & Larr مصفوفة مرتبة n & حجم كبير للمصفوفة x & قيمة Larr المراد البحث عنها تعيين منخفض = 1 تعيين مرتفع = n بينما x غير موجود إذا كان مرتفعًا

تفسير:



الخطوة 1: أولاً ، قارن x بالعنصر الأوسط.

الخطوة 2: إذا تطابقت x مع العنصر الأوسط ، فعليك إعادة المؤشر الأوسط.

الخطوه 3: عدا ذلك ، إذا كانت x أكبر من العنصر الأوسط ، فإن x يمكن أن تقع فقط في الجانب الأيمن نصف المصفوفة بعد العنصر الأوسط. ومن ثم تتكرر النصف الأيمن.

الخطوة الرابعة: عدا ذلك ، إذا كانت (x أصغر) ، فتكرر للنصف الأيسر.

هذه هي الطريقة التي تحتاج إليها للبحث عن العنصر في المصفوفة المحددة.

كيفية إنشاء ملف المسجل في جافا

دعنا الآن نرى كيفية تنفيذ خوارزمية بحث ثنائية بشكل متكرر. أدناه يوضح البرنامج نفسه.

بحث ثنائي متكرر

فئة عامة BinarySearch {// تنفيذ Java للبحث الثنائي العودي // إرجاع فهرس x إذا كان موجودًا في arr [l..h] ، وإلا إرجاع -1 int binarySearch (int a [] ، int l ، int h ، int x) {if (h> = l) {int mid = l + (h - l) / 2 // إذا كان العنصر موجودًا في الوسط نفسه إذا (a [mid] == x) يعود mid // If العنصر أصغر من الوسط ، فلا يمكن أن يكون موجودًا إلا في المصفوفة الفرعية اليسرى إذا كان (a [mid]> x) يُرجع binarySearch (arr ، l ، mid - 1 ، x) // عدا ذلك ، لا يمكن أن يكون العنصر موجودًا إلا في بحث إرجاع ثنائي للمصفوفة الفرعية اليمنى (arr، mid + 1، h، x)} // نصل إلى هنا عندما لا يكون العنصر موجودًا في المصفوفة return -1} public static void main (String args []) {BinarySearch ob = new BinarySearch () int a [] = {20، 30، 40، 10، 50} int n = a.length int x = 40 int res = ob.binarySearch (a، 0، n - 1، x) if (res == -1) System.out .println ('العنصر غير موجود') else System.out.println ('عنصر موجود في الفهرس' + res)}}

عند تنفيذ البرنامج أعلاه ، سيحدد العنصر الموجود في الفهرس المحدد

عنصر موجود في الفهرس 2

هذا يقودنا إلى نهاية البحث الثنائي في جافا مقالة - سلعة. آمل أن تكون قد وجدتها مفيدة وساعدتك في الفهم .

تفحص ال من Edureka ، وهي شركة تعليمية موثوقة عبر الإنترنت مع شبكة تضم أكثر من 250000 متعلم راضٍ منتشرين في جميع أنحاء العالم. نحن هنا لمساعدتك في كل خطوة في رحلتك ، لتصبح بجانب أسئلة المقابلة جافا هذه. لقد توصلنا إلى منهج مصمم للطلاب والمهنيين الذين يرغبون في أن يكونوا مطور جافا. تم تصميم الدورة التدريبية لمنحك السبق في برمجة Java وتدريبك على مفاهيم Java الأساسية والمتقدمة جنبًا إلى جنب مع العديد من أطر Java مثل Hibernate & Spring.

في حال واجهت أي صعوبة أثناء تنفيذ Binary Search في ، يرجى ذكرها في قسم التعليقات أدناه وسنعاود الاتصال بك في أقرب وقت ممكن.