Chào mọi người, em là thành viên mới và mong sẽ học hỏi được nhiều từ mọi người ạ.
Dưới đây là em code tìm kiếm nhị phân bằng Java, mọi người thử check xem giúp em cách em làm như nào, và cho em tham khảo cách của mọi người được không ạ? Em xin cảm ơn nhiều ạ.
import java.io.IOException;
import java.util.*;
public class arraytest {
public static void main (String args[]){
Scanner inp = new Scanner(System.in);
int n; // Số phần tử của mảng
System.out.print("Nhập số phần tử của mảng: ");
n = inp.nextInt();
int a[] = new int[n]; // Khai báo mảng Int
//Nhập mảng
System.out.println("Nhập mảng tăng dần: ");
for (int i = 0; i < n;i++){
a[i] = inp.nextInt();
}
//Tìm kiếm nhị phân
int m;
System.out.print("Nhập số cần tìm: ");
m = inp.nextInt();
binarysearch(a,m,0,n);
}
public static void binarysearch(int[] a,int m,int f, int n){
int o = (int)((n-f)/2 + f);
if(m != a[o]) {
if(n-f < 2){
System.out.println("Không tìm thấy!");
}
else{
if (m < a[o]) {
binarysearch(a, m, 0, o);
}
else if (m > a[o]) {
binarysearch(a, m, o, n);
}
}
}
else System.out.printf("Số cần tìm nằm ở vị trí %d",o);
}
}
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?