package algorithm.class01_BinarySearch;
import java.util.Arrays;
public class Prob00_MyBS {
public static void main(String[] args) {
int[] arr = {5,1,23,11,4,15,2,3,55,7};
// 1, 2, 3, 4, 5, 6, 7, 8, 9
int key = 1;
Arrays.sort(arr);
int loop = binarySearch_Loop(arr, key);
int recursion = binarySearch_Recursion(arr, key, 0, arr.length-1);
System.out.println("index : " + loop + " ๋ฐ๋ณต๋ฌธ ์ฌ์ฉ");
System.out.println("index : " + recursion + " ์ฌ๊ท ํธ์ถ ์ฌ์ฉ");
}
static int binarySearch_Loop(int[] arr, int key){
int start = 0;
int end = arr.length - 1;
while (start <= end) {
int mid = (start + end) / 2;
if (arr[mid] > key) { // ํค๊ฐ ์ค๊ฐ ๊ฐ ๋ณด๋ค ์์ ๊ฒฝ์ฐ
// end ๋ฅผ mid ๋ก
end = mid - 1;
}else if (arr[mid] < key) { // ํค๊ฐ ์ค๊ฐ ๊ฐ ๋ณด๋ค ํฐ ๊ฒฝ์ฐ
// start ๋ฅผ mid ๋ก
start = mid + 1;
}else { // arr[mid] == key
return mid;
}
}
return start - 1;
}
static int binarySearch_Recursion(int[] arr, int key, int start, int end){
int mid = (start + end) / 2;
if(arr[mid] < key) return binarySearch_Recursion(arr, key, mid + 1, end);
else if(arr[mid] > key) return binarySearch_Recursion(arr, key, start, end - 1);
return mid;
}
}
๐ Others.../- ์๋ฃ๊ตฌ์กฐ & ์๊ณ ๋ฆฌ์ฆ
๋๊ธ