كود البينري سيرش - Binary Search بلغة الجافا java مع الشرح بالعربي
خوارزمية البحث الثنائي واحد من أكثر الخوارزميات التي يتم استخدامها في عالم البرمجة وايضا يتم تدريسها في الجامعات وذلك لاهميتها الكبيره وهي خوارزمية تعمل على ايجاد العناصر بسرعه عاليه بمعنى انه لديك مصفوفة array تحتوي على مجموعه من الارقام ولكنها بشكل مرتب وهنا يأتي دور خوارزمية البحث الثنائي والتي تعمل على إيجاد القيمة المرادة ويخبرك موقعه بالنسبة لمجموعة الارقام , وسوف نقدم لكم كودين واحد يمكن المستخدم من ادخال الارقام و القيمة المراد الحصول عليها ومعرفة موقعها والآخر تكون القيم والمدخلات موجودة بداخله ولن يحتاج المستخدم بإدخالها
Binary Search
تحقق من وجود مجموعة مرتبة عن طريق تقسيم فاصل البحث إلى النصف بشكل متكرر. ابدأ بفترة تغطي المجموعة بأكملها. إذا كانت قيمة مفتاح البحث أقل من قيمة الكائن في وسط الفاصل الزمني.
شرح خوارمية البينري سيرش
كود البرنامج بلغة الجافا
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.