Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Java

Chương trình Java tìm cặp gần nhất từ hai mảng đã sắp xếp


Để tìm cặp gần nhất từ hai mảng đã sắp xếp, mã Java như sau:

Ví dụ

public class Demo {    void closest_pair(int my_arr_1[], int my_arr_2[], int arr_1_len, int arr_2_len, int sum){       int diff = Integer.MAX_VALUE;       int result_l = 0, result_r = 0;       int l = 0, r = arr_2_len-1;       while (l<arr_1_len && r>=0){          if (Math.abs(my_arr_1[l] + my_arr_2[r] - sum) < diff){             result_l = l;             result_r = r;             diff = Math.abs(my_arr_1[l] + my_arr_2[r] - result_l);          }          if (my_arr_1[l] + my_arr_2[r] > result_l)           r--;          else           l++;       }       System.out.print("The closest pair that matches two arrays is [" + my_arr_1[result_l] + ", " +       my_arr_2[result_r] + "]");    }    public static void main(String args[]){       Demo my_ob = new Demo();       int my_arr_1[] = {56, 78, 99, 11};       int my_arr_2[] = {33, 12, 69, 87};       int arr_1_len = my_arr_1.length;       int arr_2_len = my_arr_2.length;       int val = 79;       my_ob.closest_pair(my_arr_1, my_arr_2, arr_1_len, arr_2_len, val);    } }

Kết quả

The closest pair that matches two arrays is [56, 33]

Lớp Demo chứa hàm closest_pair, lặp qua cả hai mảng, kiểm tra cặp nào tổng gần với số chỉ định. Cặp từ mảng trả về. Trong main, thể hiện Demo tạo, mảng định nghĩa, độ dài gán cho biến. Hàm gọi với mảng, độ dài, giá trị. Thông báo hiển thị.