Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- 빅오 표기법
- 빅세타
- 코틀린 Hello World!
- matrix fo a linear transformation
- 재귀함수
- 배열 섞기
- itertools
- nonhomogeneous linear system
- solutions of matrix equation
- Big Theta
- 코틀린 시작하기
- recursive algorithms
- Big-Oh 예제
- matrix-vector product
- Big-O 예제
- trivial solution
- 이진 탐색
- matrix trnasformations
- homogeneous linear system
- 알고리즘 분석의 실례
- linear dependence
- nontrivial solution
- 일차변환
- 빅오메가
- Big-Oh notation
- Big Omega
- NumPy
- python
- 랜덤 순서 배열
- one-to-one
Archives
- Today
- Total
목록recursive algorithms (1)
코딩 연습
이진 탐색 알고리즘 (binary search algorithm)
주어진 배열에서 특정한 요소 target 을 찾아내는 상황을 가정해 봅시다. 가장 쉽게 떠 올릴 수 있는 방법은 배열의 요소 하나하나와 target 값이 같은지를 순차적으로 모두 비교하는 것입니다. 만약 배열의 크기가 $n$ 이라고 한다면 이 알고리즘의 시간복잡도를 Big-Oh notation을 이용하요 나타낸다면 $O(n)$ 이 되겠죠. 그렇지만 이것보다 훨씬 빠르게 target 을 찾아내는 방법도 있습니다. 우리가 살펴봐야 할 요소들의 개수를 절반으로 줄여가면서 탐색을 하는 것이죠. 이런식으로 탐색하는 방법이 바로 이진 탐색 알고리즘입니다. 다만 이진 탐색(binary search)은 오름 차순으로 정렬된 배열에만 적용할 수 있다는 단점이 있습니다. (앞으로 내용을 보시면 아시겠지만 오름차순으로 정렬..
알고리즘
2017. 5. 6. 01:39