반응형
Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
Tags
- coalesce
- mybatis
- spring cloud
- WebLogic
- RabbitMQ
- JPA
- netflix oss
- Spring Open Feign
- spring boot redis
- argo cd
- ChannelPipeline
- KAFKA
- spring boot
- docker
- Airflow
- vue.js
- MySQL
- Hibernate
- jmeter
- docker-compose
- Netty
- cassandra
- weblogic 10
- redis
- Redis Sentinel
- Selenium
- QueryDSL
- docker compose mysql
- grafana
- Docker Compose
Archives
- Today
- Total
IT.FARMER
이진탐색 알고리즘 Binary Search 본문
반응형
주어진 배열에 특정한 요소를 찾기 위한 방법. 단순하게 반복문을 돌며 모두 비교하는 순차탐색알고리즘을 이용할 수 있다.
시간을 적약하기위해 이진탐색 알고리즘을 사용하게 되는데
요소를 절반으로 나누어 값을 비교해 나가는 방식이다. 흔히 숫자 게임에서 높음 낮음을 생각하면 되겠다.
단 이진탐색을 하기 위해서는 조건이 있다. 정렬이 되어 있어야 한다는 것이다.
크기가 n인 리스트 data에서 특정 요소를 찾아 낸다고 할 때 이진탐색 순서는 다음과 같다.
1. n개인 data 리스트 오름차순 정렬
2. 처음과 마지막 값 설정head =0 , tail = data.length-1;
3. mid 중간 값 설정 (head+tail)/2
4. target 값과 mid 값이 같은지 확인
5. 값이 같지 않은경우 target 값이 mid 값보다 크면 head 를 +1 그반대의 경우 tail -1 으로 값을 변경후 3번으로 돌아가 반복한다.
소스로 보면 다음과 같다.
반응형