شارك المقالة

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


فيديو الشرح


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


شاهد أيضًا
مقالات ذات صلة
جعل المندوب قادر على قبول الطلب وكتابة ملاحظات والانتهاء منه – تطبيق “فايربيز” بألاندرويد ستوديو #12

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

تعلم كيفية ضبط حجم الخط بشكل مثالي في تطبيقات Flutter

تعلم كيفية ضبط حجم الخط بشكل مثالي في تطبيقات Flutterإحدى النقاط الرئيسية التي يجب مراعاتها…

كود بلغة الجافا لطباعة رسمة المربع و المستطيل | Draw a rectangle in Java

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

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

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