Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.Scanner;
- public class binarySearch {
- public static int bSearch(int[] a, int f) {
- int l = 0;
- int r = a.length-1;
- if ( a[0] > f){
- return a[0];
- }
- while (l < r - 1) {
- int m = (l + r) / 2;
- if (a[m] <= f) {
- l = m;
- } else {
- r = m;
- }
- }
- if (Math.abs(f-a[l]) > Math.abs(f-a[l+1])) {
- return a[l+1];
- }
- return a[l];
- }
- public static void main(String[] args) {
- Scanner scan = new Scanner(System.in);
- int n = scan.nextInt();
- int k = scan.nextInt();
- int[] arrSorted = new int[n];
- int[] requests = new int[k];
- for (int i = 0; i < n; i++) {
- arrSorted[i] = scan.nextInt();
- }
- for (int i = 0; i < k; i++) {
- requests[i] = scan.nextInt();
- }
- for (int i = 0; i < k; i++) {
- System.out.println(bSearch(arrSorted, requests[i]));
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement