티스토리 뷰

Algorithms

Binary Search

seoca 2019. 7. 23. 08:46

 

Binary Search 이진탐색

 

  • Binary search uses 'divide and conquer' strategy.
  • Binary search is fast to search for specific data by dividing the search data in half.
  • The Array should be a sorted array

 

Example Code I in Java

public class Main {
    public static void main(String[] args) {
        int[] arr = {1,2,4,6,8,9}; //should be sorted array.
 
        binarySearch(9, arr);
    }
 
    public static void binarySearch(int i, int arr[]) {
        int mid;
        int left = 0;
        int right = arr.length - 1;
 
        while (right >= left) {
            mid = (right + left) / 2;
 
            if (i == arr[mid]) {
                System.out.println("Element found at " + mid + " index");
                break;
            }
            if (i < arr[mid]) {
                right = mid - 1;
            } else {
                left = mid + 1;
            }
 
        }
    }
}
 

 

 

 

 

 

Example Code II in JavaScript

const arr = [2, 4, 3, 7, 5, 6, 1];
const i = 5;

//Search for specific element using Binary search in JavaScript
function binarySearch(i, arr) {
    //should be sorted array
    const sortArray = arr.sort(); // [1,2,3,4,5,6,7]

    let mid = 0;
    let left = 0;
    let right = arr.length - 1;

    //renew the value of mid
    while (right >= left) {
        mid = (right + left) / 2;

        //mid return
        if (i === arr[mid]) {
            console.log(arr[mid]);
            break;
        }

        //change the value of right and left
        if (i < arr[mid]) {
            right = mid - 1;
        } else {
            left = mid + 1;
        }
    }
}

binarySearch(i, arr); 

 

 

return

5

'Algorithms' 카테고리의 다른 글

Bubble Sort  (0) 2019.07.25
Recursion in Java  (0) 2019.07.24
완주하지 못한 선수 - Hash  (0) 2019.07.23
Programmers 핸드폰번호 가리기  (0) 2019.03.03
FizzBuzz  (0) 2019.02.24