이번 시간에는 이진검색과 정렬에 대해 배웠다.

이진검색의 기본 조건
-> 배열에 저장 되어있어야 하고,
정렬되어 있어야 한다.
이진검색이란
우리가 영어 단어를 영어 사전에서 찾을 때와 비슷한 방법
배열리 있으면 그 배열의
가운데 값을 보고
내가 찾는 값이 가운데 값의
앞에 있을지 뒤에 있을지
범위를 좁혀나가면서 찾는 방법.
그렇게 범위를 좁혀 나가다보면

이렇게 first = middle = last 인 값을 찾을 수 있게 된다.
-> 내가 찾는 값!!!

이진검색은 한 번 실행 할 때마다
남아있는 데이터가 절반으로 줄어들기 때문에
시간복잡도는 O(log2n)
((티스토리는 수식 못넣나?;;;ㅠㅠ))

연결리스트에서 불가능 한 이유는
가운데 값에 먼저 접근 할 수 없기 때문
접근하려면 처음부터 접근해야하니까
만약 1000개의 값이 저장되어 있는 배열이라면
순차검색의 경우 1~1000번 검색해야 하지만
이진검색은 log1000번 검색해야한다.
이는 약 10번이기 때문에
순차검색과 이진검색의 차이는 매우 큰 것!
(둘의 평균 값 500번
But,
이진 검색은 10번 정도에 가능 ㅇㅇ)
이해가 잘 안돼 어려웠던 부분인데
완전 이해했다!
잼써
'STUDY > 자료구조' 카테고리의 다른 글
| 컴퓨터 구조를 알아야 하는 이유 (0) | 2023.11.18 |
|---|---|
| [Kmooc] 2. Big-O 표기법 (0) | 2022.04.22 |
| [Kmooc] 중간고사 정리 (1) | 2022.04.22 |
| [C로 배우는 자료구조] 시간복잡도와 점근적 분석(1) (0) | 2022.03.04 |
| [C로 배우는 자료구조] C언어에서의 포인터, 배열, 그리고 포인터 연산 (0) | 2022.02.27 |
댓글