القائمة الرئيسية

الصفحات

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

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


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


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



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.


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


التنقل السريع