- 알고리즘 표기법(Big O)
- O = on the order of "~만큼의 정도로 커지는"
이미지출처: boostcourse cs50- 알고리즘 실행 시간의 상한
- O(n^2): 선택 정렬, 버블 정렬
- O(n log n)
- O(n) - 선형 검색
- O(log n) - 이진 검색
- O(1)- 알고리즘 실행 시간의 하한
- Ω(n^2): 선택 정렬, 버블 정렬
- Ω(n log n)
- Ω(n) - 배열 안에 존재하는 값의 개수 세기
- Ω(log n)
- Ω(1) - 선형 검색, 이진 검색- 실행시간의 상한이 낮은 알고리즘이 더 좋을까, 하한이 낮은 알고리즘이 더 좋을까?
- 최악의 상황을 고려해야하기 때문에 상한이 낮은 알고리즘이 더 좋다.
만약 정렬이 모두 되어있는 숫자 리스트가 주어진다면,
최종적으로 버블 정렬의 실행시간 하한은 Ω(n)이 된다.
void draw(int h) { // 높이가 0이라면 (그릴 필요가 없다면) if (h == 0) { return; } // 높이가 h-1인 피라미드 그리기 draw(h - 1); // 피라미드에서 폭이 h인 한 층 그리기 for (int i = 0; i < h; i++) { printf("#"); } printf("\n"); }