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
- 스파르타코딩클럽
- 자료구조
- 평균온도구하기
- 알고리즘도서
- 알고리즘책
- 리액트
- CSS
- 힙한취미코딩
- 누구나자료구조와알고리즘
- 알고리즘
- 개발도서추천
- 스파르타코딩
- 웹개발종합반
- 개발도서
- 코딩
- 빅오표기법
- 자료구조책
- 자바스크립트
- 알고리즘책추천
- 이벤트맛집
- 타입스크립트
- 개발책추천
- 정렬알고리즘
- 힙한취미
- 알고리즘문제
- 스파르톤
- 코딩테스트
- HTML
- 코드최적화
- 짝수의평균구하기
Archives
- Today
- Total
Run with coding
누구나 자료 구조와 알고리즘 | 빅 오 표기법 본문
✔️빅 오가 무엇인가?
빅 오 = 원소가 N개일 때 몇 단계가 필요할까?
- 빅 오의 본질
- 빅 오는 데이터가 늘어날 때 단계가 어떻게 증가하는 지를 설명한다.
즉, 데이터가 늘어날 때 알고리즘 성능이 어떻게 바뀌는지
- 빅 오는 데이터가 늘어날 때 단계가 어떻게 증가하는 지를 설명한다.
- O(N) = 알고리즘에 N단계가 필요하다.
- N은 항상 상수
- O(1) = 가장 빠른 알고리즘 단계
- 배열 읽기에는 딱 한 단계만 필요
- 배열 읽기에는 딱 한 단계만 필요
- O(1) VS O(N)
- 데이터가 증가할수록 O(N)이 O(1)보다 덜 효율적인 어떤 지점에 반드시 다다르게 됨
- 선형 검색의 효율성을 빅 오로 표기해보자!
- 찾고자 하는 항목이 첫 번째 있다면 : 최선의 시나리오 O(1)
- 찾고자 하는 항목이 마지막에 있다면 원소N개를 모두 검색해야 하기 때문에 : 최악의 시나리오 O(N)
- 별도로 명시하지 않는 한 빅 오 표기법은 최악의 시나리오를 의미함
- 이진 검색의 빅 오 표기법
- O(1)과 O(N) 사이 어디쯤 = O(logN) = 로그 시간의 시간 복잡도
- O(logN) : 데이터가 두 배로 증가할 때마다 한 단계씩 늘어나는 알고리즘을 설명하는 빅 오의 방법
- 가장 효율적인 순서 : O(1) > O(logN) > O(N)
- 왜 O(logN)이라 부르는가? ⇒ 로가리즘
- 로그 : 로가리즘의 줄임말
- 원소가 N개 있을 때 logN단계가 필요하다.
- 즉, O(logN)은 원소가 하나가 될 때까지 데이터 원소를 계속해서 반으로 줄이는 만큼의 단계 수가 걸린다는 뜻
'코딩테스트 | 자료구조 | 알고리즘' 카테고리의 다른 글
누구나 자료 구조와 알고리즘 | 일상적인 코드 속 빅 오 | Javascript로 짝수의 평균 구하기 (0) | 2023.06.15 |
---|---|
누구나 자료 구조와 알고리즘 | 긍정적인 시나리오 최적화 | 삽입 정렬 알고리즘 (0) | 2023.06.14 |
누구나 자료 구조와 알고리즘 | 빅 오를 사용하거나 사용하지 않는 코드 최적화 | 선택 정렬 (0) | 2023.05.20 |
누구나 자료 구조와 알고리즘 | 빅 오 표기법 | 빅 오로 코드 속도 올리기 (0) | 2023.05.19 |
[코딩테스트/알고리즘]직사각형 나머지 한 점 구하기(C언어/JavaScript)-프로그래머스 (0) | 2022.05.02 |