شارك المقالة

كود البينري سيرش – 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.


فيديو الشرح


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


شاهد أيضًا
مقالات ذات صلة
كيفية جلب معلومات من ArrayList باستخدام rx java ببرنامج اندرويد ستوديو

  كيفية جلب معلومات من ArrayList باستخدام rx java ببرنامج اندرويد ستوديوفي هذا المقال سوف…

كود برنامج بلغة الجافا لحل المعادلة التربيعية – The quadratic equation java code

كود برنامج بلغة الجافا لحل المعادلة التربيعية متابعي موقع ومدونة جي كودرس مرحبا بكم من…

طباعة جدول الضرب لجميع الاعداد بلغة البايثون – Multiplication table in python

  كيفية طباعة جدول الضرب لجميع الاعداد بلغة البايثونالشروحات التي نقدمها لكم في لغه البايثون…

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

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