Computer >> 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);
   }
}

Đầu ra

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

Một lớp có tên là Demo chứa một hàm có tên là ‘near_pair’, nó sẽ lặp lại qua cả hai mảng và kiểm tra xem tổng nào cộng vào một số rất gần với một số đã chỉ định trước đó. Cặp này từ mảng được trả về dưới dạng đầu ra. Trong hàm main, một phiên bản mới của lớp Demo được định nghĩa, các mảng được xác định và độ dài của chúng được gán cho hai biến tương ứng. Hàm được gọi bằng cách chuyển các mảng, độ dài của chúng và giá trị. Thông báo liên quan được hiển thị trên bảng điều khiển.