시간 복잡도
진행 순서
[Code]
package Study;
import java.util.Arrays;
/**
* created by victory_woo on 2020/04/30
*/
public class BinarySearch {
public static void main(String[] args) {
int[] arr = {2, 13, 6, 5, 12, 15, 23, 17, 19, 10,};
System.out.println(solution(17, arr));
}
private static int solution(int target, int[] arr) {
Arrays.sort(arr);
int left = 0, right = arr.length - 1, mid = 0;
while (left < right) {
mid = (left + right) / 2;
if (target == arr[mid]) {
System.out.println("Find Target : " + target + ", Value : " + arr[mid]);
return arr[mid];
}
if (target < arr[mid]) right = mid - 1;
else left = mid + 1;
}
return -1;
}
}
결과를 찾은 경우, 찾았다는 메시지와 함께 찾은 결과를 반환한다. 결과를 찾지 못한 경우에는 -1을 반환한다.
å