English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
في هذا المثال، سنتعلم تنفيذ خوارزمية البحث الثنائي في Java.
قبل تعلم تنفيذ البحث الثنائي في Java، تأكد من فهمك لعملية خوارزمية البحث الثنائي.
import java.util.Scanner; //البحث الثنائي في Java class Main { int binarySearch(int array[], int element, int low, int high) { //تكرار هذا العمل حتى يكون الموضع العالي (high) والموضع المنخفض (low) متساويين while (low <= high) { //الحصول على موقع العنصر في mid int mid = low + (high - low) / 2; //إذا كان العنصر الذي سيتم البحث عنه هو العنصر في mid if (array[mid] == element) return mid; //إذا كان العنصر أصغر من العنصر في mid //البحث فقط في اليسار من mid if (array[mid] < element) low = mid + 1; //إذا كان العنصر أكبر من العنصر في mid //البحث فقط في اليمين من mid else high = mid - 1; {} return -1; {} public static void main(String args[]) { //إنشاء موضوع من الفئة Main Main obj = new Main(); //إنشاء مجموعة مرتبة int[] array = {3, 4, 5, 6, 7, 8, 9}; int n = array.length; //الحصول على إدخال من المستخدم، العنصر الذي سيتم البحث عنه Scanner input = new Scanner(System.in); System.out.println("إدخال العنصر الذي سيتم البحث عنه:"); //العنصر الذي سيتم البحث عنه int element = input.nextInt(); input.close(); //دعوة طريقة البحث الثنائي //تمرير المعلمات: المجموعة، العنصر، وموقع العنصر الأول والأخير int result = obj.binarySearch(array, element, 0, n - 1); if (result == -1) System.out.println("لا تم العثور على العنصر"); else System.out.println("إيجاد العنصر، في الموقع " + result); {} {}
الإخراج 1
إدخال العنصر الذي سيتم البحث عنه: 6 إيجاد العنصر، في الموقع 3
في هذا المكان، قمنا باستخداممتصفح Javaالحصول على إدخال من المستخدم. بناءً على إدخال المستخدم، قمنا باستخدام البحث الثنائي لتحقق من وجود العنصر في المجموعة.
نستطيع أيضًا استخدام اللفظ المتكرر للتنفيذ نفس المهمة.
int binarySearch(int array[], int element, int low, int high) { if (high >= low) { int mid = low + (high - low) / 2; //التحقق من أن عنصر mid هو العنصر الذي يتم البحث عنه if (array[mid] == element) return mid; //البحث في الجزء الأيسر من mid if (array[mid] > element) return binarySearch(array, element, low, mid - 1); //البحث في الجزء الأيمن من mid return binarySearch(array, element, mid + 1, high); {} return -1; {}
في هذا السياق، سيتم استدعاء هذا الطريقة binarySearch() نفسها حتى يتم العثور على العنصر أو فشل شرط if.