شارك المقالة

كود البينري سيرش – Binary Search بلغة الجافا java مع الشرح بالعربي


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




Binary Search

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


شرح خوارمية البينري سيرش 


alorithm او خوارزمية binary بسيطة جدا تخيل انه لدينا مجموعة ارقام داخل Array او مصفوفه وهذة الارقام هي 1 3 5 7 8 9 تقوم هذة الخوارزمية بالتقسيم البحث الى قسيمن لانها تعمل بالنظام الثنائي او  binary فاذا طلب المستخدم رقم 3 على سبيل المثال ستقوم بتقسيم المصفوفة الى نصفين 1 3 5 و النص الاخر 7 8 9 بالتالي القيمة 3 موجوده في القسم الاول سوف تاخذة وتقسمه ايضا الى قسيمن لانها binary كما ذكرنا لكم وتنظر هل هو ف اليمين او اليسار وهكذا تقسم الخوارزمية الى ان تصل الى الرقم المطلوب كل شيئ سيتضح لك بكود الجافا الموجود بالاسفل .

كود البرنامج بلغة الجافا 


        BinarySearch ob = new BinarySearch(); 

        int arr[] = { 2, 3, 4, 10, 40 }; 

        int n = arr.length; 

        int x = 10; 

        int result = ob.binarySearch(arr, 0, n - 1, x); 

        if (result == -1) 

        return;

        else 

        System.out.println("Element found at index " + result); 

    }

    

        int binarySearch(int arr[], int l, int r, int x)  {

            if (r >= l) { 

            int mid = l + (r - l) / 2; 

            if (arr[mid] == x) 

            return mid; 

            if (arr[mid] > x) 

            return binarySearch(arr, l, mid - 1, x); 

            return binarySearch(arr, mid + 1, r, x); 

            } 

            return -1; 



  • شكل الكود النهائي


المخرجات – Outpt


Element found at index 3


الكود الاخر والذي يطلب من المستخدم ادخال القيم


        int size,counter,search,arr[],low,high,mid;

        Scanner n = new Scanner (System.in);

        System.out.println("Enter number of elemnts :");

        size = n.nextInt();

        arr = new int [size];

        System.out.println(" Enter " + size + "intergers");

        for (counter = 0 ; counter<size  ; counter++)

            arr[counter] = n.nextInt();

        System.out.println("Enter the search value");

        search = n.nextInt();

        low = 0;

        high = size - 1 ;

        mid = low + (high - low ) / 2 ;

        while (low <= mid) {

            if (arr[mid] <search )

                low = mid +1;

            else if (arr[mid] == search) {

                System.out.println("found at location "+ (mid+1) + ".");

                break;

            }

            else {

                high = mid - 1 ;

            }
            mid = (low + high) / 2;

        }


  • شكل الكود النهائي


المخرجات – Outpt


Enter number of elemnts :

5

 Enter 5intergers

6

7

8

10

12

Enter the search value

8

found at location 3.


فيديو الشرح


لمزيد من الاكواد


شاهد أيضًا
مقالات ذات صلة
شرح كيفية ربط مشروع Flutter بـ CLI مع حل جميع المشاكل التي تقابلك بابسط طريقة

 شرح كيفية ربط مشروع Flutter بـ CLI مع حل جميع المشاكل التي تقابلك بابسط طريقة…

عرض شاشة الموبايل على الكمبيوتر اثناء تطوير تطبيقات الموبايل

  عرض شاشة الموبايل على الكمبيوتر اثناء تطوير تطبيقات الموبايلاذا كنت من مطوري تطبيقات الموبايل…

شروحات اندرويد ستوديو بالعربي : كيف يمكن عمل زر مموج بالاندرويد ستوديو بسهولة

  متابعي موقعنا الاعزاء مرحبا بكم في مقالة جديدة في برنامج android studio حيث يتم…

🚫 مانع الإعلانات مفعل

يجب إيقاف مانع الإعلانات لاستكمال تصفح الموقع