Java & Spring/Java Algorithm
[JAVA][์๊ณ ๋ฆฌ์ฆ] ์ด์ง๊ฒ์ ์๊ณ ๋ฆฌ์ฆ
Rainbow๐Coder
2022. 12. 27. 23:48
728x90
JAVA
public class App {
public static void main(String[] args) throws Exception {
//[1] Input
int [] numbers = {1,2,3,4,5,6,7,8,9,10,11,12}; //์ค๋ฆ์ฐจ์ ์ ๋ ฌ๋์๋ค๊ณ ๊ฐ์
int N = numbers.length; //์์ฌ์ฝ๋
int search = 7;//๊ฒ์ํ ๋ฐ์ดํฐ
boolean flag = false; //์ฐพ์์ผ๋ฉด true
int index = -1; //์ฐพ์ ์์น(์ธ๋ฑ์ค)
//[2] Process : ์ด์ง ๊ฒ์ (Binary Search)
int min = 0;
int max = N - 1;
while (min <= max) {
int mid = max + min / 2;
if (numbers[mid] == search) {
flag = true;
index = mid;
break;
} else if (numbers[mid] < search) {
min = mid + 1;
} else if (numbers[mid] > search) {
max = mid - 1;
}
}
//[3] Output
if(flag) {
System.out.println(search+"๋ฅผ"+ index +"์์น์์ ์ฐพ๋ค!");
} else {
System.out.println("์ฐพ์ง ๋ชปํ๋ค!");
}
}
}
ํ์ด์ฌ
def main():
#[1] Input
data = [1,2,3,4,5,6,7,8,9,10]
N = len(data) #์์ฌ์ฝ๋
search = 7
min = 0
max = N-1
flag = False
index = -1
#[2] Process
while min <= max:
mid = int((min+max)/2)
if data[mid] == search:
flag = True
index = mid
break
if data[mid] > search:
max = mid -1
if data[mid] < search:
min = mid + 1
#[3] Output
if flag:
print(f"{search}์ ์ธ๋ฑ์ค๋ {index}")
if __name__ == '__main__':
main()728x90