만약 정렬되지 않은 배열이 있다면, 선형 검색이 빠를까요 이진 검색이 빠를까요?
A.정렬이 되지 않은 경우, 둘은 같다고 생각한다.
최선의 경우 둘 검색 방법 모두 첫 번째 대상에서 원하는 것을 찾는다.
최악의 경우 모두 마지막 대상에서 검색이 완료되기 때문이다.
실행시간의 상한이 낮은 알고리즘이 더 좋을까요, 하한이 낮은 알고리즘이 더 좋을까요?
A. 상한이 낮은 알고리즘이 좋다고 생각한다. 최악의 경우가 진짜 최악은 아니여야 하기 때문에. ( 속도,메모리 초과로 실패하지 않게 )
Big O
빅오 표기법은, ON THE ORDER의 약자로, '~만큼 정도로 커지는'이라는 의미다. 실행 시간의 상한을 나타냄.
O(n)은 n만큼 커지는 것. n이 커질 수록 선형적으로 증가.
O(n^2)
O(n log n)
O(n) - 선형 검색
O(log n) - 이진 검색
O(1)
Big Ω
빅오와 반대로, 실행 시간의 하한을 나타냄
선형검색과 이진검색 모두 실행시간의 하한은 오메가(1)이다. 운이좋다면 첫번째 케이스에 원하는 값을 찾을 수 있기 때문.
Ω(n^2)
Ω(n log n)
Ω(n) - 배열 안에 존재하는 값의 개수 세기
Ω(log n)
Ω(1) - 선형 검색, 이진 검색