Algorithm ( 알고리즘 ) 2

이분검색(Binary Search) - Java구현

이분검색은 검색할 범위를 반으로 줄여가며 답을 찾아가는 알고리즘이다. 이분검색 말로하면 지루하니까 미천한 그림판실력을 발휘해보겠다. 다음과 같이 오름차순으로 정렬된 배열이 있다고 생각해보자. 우리는 여기서 1이 몇번째에 있는지 바로 알 수 있지만 컴퓨터는 그렇지 못하다. 이분 검색의 절차를 그려보자면 아래와 같다. 배열의 정 가운데 요소를 기준으로 반으로 쪼갠다. 1이 가운데의 원소인 9보다 작으면 왼쪽 배열을 선택한다. 왼쪽 배열의 가운데 요소 3을 기준으로 쪼갠다 1이 가운데 원소인 3보다 작으면 왼쪽배열을 선택한다. 1이 남았다. 찾으려는 값이 1이기 때문에 종료한다. 이분검색은 분할정복 알고리즘 중 가장 간단한 부류에 속한다. 왜냐면 입력사례를 분할해 해답을 구하고, 결과를 취합할 필요가 없기 때..

백준 2750번 문제 ( 정렬하기 )

문제는 직접 가서 보는것이 예의 'ㅅ' https://www.acmicpc.net/problem/2750 2750번: 수 정렬하기 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net 맨 처음에는 내가 학원 처음 다니면서 배웠던 Scanner 를 사용해서 문제를 풀었다. ( 사실 이게 익숙해서 ) package sort; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class B_2750 { public static..