[JAVA] 이진탐색

hi·2021년 12월 21일
post-thumbnail

정렬 👉 정렬된 데이터를 대상으로 탐색하는 알고리즘

  • 배열의 특정 숫자 포함 여부,
    포함되어 있지 않다면 그 숫자의 적절한 위치까지 찾아주는 것이 가능하다

1. sort ( ) : 오름차순 정렬

int[] arr ={5,1,3}

Arrays.sort(arr);

System.out.println(Arrays.toString(arr)); // {1,3,5} 출력

2. binarySearch ( 배열 , 찾을 값 )

  • 찾을 index 번호 리턴
  • 찾을 값이 없으면 찾을 값보다 큰 최초의 위치를 찾음
    ( 그 위치 * (-1) ) - 1 = 값 리턴


int[] arr ={5,1,3}

Arrays.binarySearch(arr,2);  // 존재하지 않는 값 찾음

  • 색칠된 칸 : 존재하는 값

  • 찾을 값이 없으면 찾을 값보다 큰 최초의 위치를 찾음
    ( 그 위치 * (-1) ) - 1 = 값 리턴

  • 찾을 값(=2)가 없으므로 2보다 큰 최초의 값(=3)의 위치 값(=1)

    ( 1 x (-1) ) -1 = -2 리턴

0개의 댓글