Share binary search in java,

quocthinhngokim

New member
#nhị phân-search #Java #cấu trúc dữ liệu #algorithms #Programming ** Tìm kiếm nhị phân trong Java **

Tìm kiếm nhị phân là một thuật toán tìm kiếm tìm thấy vị trí của giá trị đích trong một mảng được sắp xếp.Nó hoạt động bằng cách liên tục chia mảng làm đôi cho đến khi tìm thấy giá trị mục tiêu.

Độ phức tạp của thời gian của tìm kiếm nhị phân là O (log n), trong đó n là kích thước của mảng.Điều này có nghĩa là thời gian chạy của thuật toán sẽ tăng lên logarit khi kích thước của mảng tăng.

Tìm kiếm nhị phân là một thuật toán rất hiệu quả để tìm các giá trị trong các mảng được sắp xếp.Tuy nhiên, nó không thể được sử dụng để tìm các giá trị trong các mảng chưa được phân loại.

## Thuật toán

Sau đây là thuật toán tìm kiếm nhị phân trong Java:

`` `java
public static int nhị phân nghiên cứu (int [] mảng, int target) {
// Tìm phần tử giữa của mảng.
int mid = mảng.length / 2;

// Nếu giá trị đích bằng với phần tử giữa, hãy trả về chỉ mục của phần tử giữa.
if (mảng [mid] == target) {
trở lại giữa;
}

// Nếu giá trị đích nhỏ hơn phần tử giữa, hãy tìm kiếm nửa bên trái của mảng.
khác if (target <mảng [mid]) {
Trả về BinarySearch (mảng, 0, giữa - 1, mục tiêu);
}

// Nếu giá trị đích lớn hơn phần tử giữa, hãy tìm kiếm nửa bên phải của mảng.
khác {
Trả về BinarySearch (Array, Mid + 1, Array.length - 1, Target);
}
}
`` `

## Ví dụ

Sau đây là một ví dụ về việc sử dụng tìm kiếm nhị phân để tìm giá trị 5 trong mảng `[1, 3, 5, 7, 9]`:

`` `java
int [] mảng = {1, 3, 5, 7, 9};
Target int = 5;

int index = BinarySearch (mảng, mục tiêu);

// Chỉ số của giá trị đích là 2.
System.out.println (index);
`` `

## Hiệu suất

Độ phức tạp về thời gian của tìm kiếm nhị phân là O (log n).Điều này có nghĩa là thời gian chạy của thuật toán sẽ tăng lên logarit khi kích thước của mảng tăng.

Ví dụ: nếu mảng chứa 10 phần tử, thuật toán sẽ thực hiện các bước O (log 10) = O (3) để tìm giá trị đích.Nếu mảng chứa 100 phần tử, thuật toán sẽ thực hiện các bước O (log 100) = O (7) để tìm giá trị đích.

## Các ứng dụng

Tìm kiếm nhị phân là một thuật toán rất hiệu quả để tìm các giá trị trong các mảng được sắp xếp.Nó được sử dụng trong một loạt các ứng dụng, bao gồm:

* Tìm kiếm các tệp trong hệ thống tệp
* Tìm kiếm hồ sơ trong cơ sở dữ liệu
* Sắp xếp dữ liệu
* Thuật toán

## hashtags

* #tìm kiếm nhị phân
* #Java
* #cấu trúc dữ liệu
* #algorithms
* #Programming
=======================================
#binary-search #Java #data-structures #algorithms #Programming **Binary Search in Java**

Binary search is a search algorithm that finds the position of a target value in a sorted array. It works by repeatedly dividing the array in half until the target value is found.

The time complexity of binary search is O(log n), where n is the size of the array. This means that the algorithm's runtime will grow logarithmically as the size of the array increases.

Binary search is a very efficient algorithm for finding values in sorted arrays. However, it cannot be used to find values in unsorted arrays.

## Algorithm

The following is the algorithm for binary search in Java:

```java
public static int binarySearch(int[] array, int target) {
// Find the middle element of the array.
int mid = array.length / 2;

// If the target value is equal to the middle element, return the middle element's index.
if (array[mid] == target) {
return mid;
}

// If the target value is less than the middle element, search the left half of the array.
else if (target < array[mid]) {
return binarySearch(array, 0, mid - 1, target);
}

// If the target value is greater than the middle element, search the right half of the array.
else {
return binarySearch(array, mid + 1, array.length - 1, target);
}
}
```

## Example

The following is an example of using binary search to find the value 5 in the array `[1, 3, 5, 7, 9]`:

```java
int[] array = {1, 3, 5, 7, 9};
int target = 5;

int index = binarySearch(array, target);

// The index of the target value is 2.
System.out.println(index);
```

## Performance

The time complexity of binary search is O(log n). This means that the algorithm's runtime will grow logarithmically as the size of the array increases.

For example, if the array contains 10 elements, the algorithm will take O(log 10) = O(3) steps to find the target value. If the array contains 100 elements, the algorithm will take O(log 100) = O(7) steps to find the target value.

## Applications

Binary search is a very efficient algorithm for finding values in sorted arrays. It is used in a variety of applications, including:

* Searching for files in a file system
* Searching for records in a database
* Sorting data
* Algorithms

## Hashtags

* #binary-search
* #Java
* #data-structures
* #algorithms
* #Programming
 
Join Telegram ToolsKiemTrieuDoGroup
Back
Top