You are on page 1of 14

이진탐색

1305 노영우, 1310 박준혁, 1312 심여원, 1316 이찬우


이진탐색이란?

자료를 순서대로 정렬하고 반으로


나눈 후 찾는 값이 어느 쪽에 있는지
파악하여 탐색 범위를 반으로
줄여나가며 자료를 찾는 방법
원리
1. 자료를 순서대로 배열

2. 배열의 중앙값을 찾으려는 자료 X와 비교

ⅰ. (중앙값)<X이면 중간값 기준 왼쪽

ⅱ. (중앙값)>X이면 중간값 기준 오른쪽

에 속하는 값들을 대상으로 다시 탐색

3. 해당 값을 찾을 때까지 반복하는 원리

4. (중앙값)=X이면 탐색 종료
예시)
찾으려는 자료 값: 19
[ 8, 19, 3, 7, 5, 25 ]
=> [ 3, 5, 7, 8, 19, 25 ] 순서대로
정렬
=> [ 3, 5, ((7)), 8, 19, 25 ] 1회
=> [ 3, 5, 7, 8, ((19)), 25 ] 2회
비교 횟수 2회
시간복잡도

시간복잡도: 컴퓨터 프로그램의 입력값과 연산 수행


시간의 상관관계를 나타내는 척도
알고리즘을 수행할 때 사용되는 연산들이 몇 번
이루어지는가에 대한 것을 상대적 지표로 나타낸 것
시간복잡도의 종류
Big-(빅-오), Big-Ω(빅-오메가), Big-θ(빅-세타)로 나눌 수 있다.

Big-(빅-오):상한 점근이라고도 하며, 프로그램을 실행하는데 걸리는 최대 연산 시간을 의미한다

Big-Ω(빅-오메가):하한 점근이라고도 하며, 프로그램을 실행하는데 걸리는 최소 연산시간을 의미한다.

Big-θ(빅-세타):위 두 값의 평균을 나타낸다


시간복잡도
알고리즘 순서도
파이썬 코드 - 반복문
map 함수
리스트의 요소를 지정된 함수로 처리해주는 함수
파이썬 코드 - 재귀
역할

1305 노영우: PPT 제작 및 자료 조사


1310 박준혁: 파이썬 코드 구상 및 자료 조사
1312 심여원: PPT 제작 및 자료 조사
1316 이찬우: 시간복잡도, 알고리즘 순서도, 파이썬 코드 작성
감사합니다

You might also like