ในการค้นหาคู่ที่ใกล้เคียงที่สุดจากอาร์เรย์ที่เรียงลำดับสองอัน โค้ด Java มีดังต่อไปนี้ −
ตัวอย่าง
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); } }
ผลลัพธ์
The closest pair that matches two arrays is [56, 33]
คลาสชื่อ Demo มีฟังก์ชันชื่อ 'closest_pair' ซึ่งจะวนซ้ำทั้งอาร์เรย์และตรวจสอบเพื่อดูว่าผลรวมใดรวมกันเป็นตัวเลขที่ใกล้เคียงกับตัวเลขที่ระบุก่อนหน้านี้ คู่นี้จากอาร์เรย์จะถูกส่งกลับเป็นเอาต์พุต ในฟังก์ชันหลัก อินสแตนซ์ใหม่ของคลาส Demo ถูกกำหนด อาร์เรย์ถูกกำหนด และความยาวของพวกมันถูกกำหนดให้กับสองตัวแปรตามลำดับ ฟังก์ชันนี้ถูกเรียกโดยการส่งผ่านอาร์เรย์ ความยาว และค่าของอาร์เรย์ ข้อความที่เกี่ยวข้องจะแสดงบนคอนโซล