1. Introduction
- 컴퓨터가 무한히 빠르고 메모리 비용이 들지 않는다고 가정하자.
- 컴퓨터가 무한히 빠르면 어떤 문제를 해결하는 알고리즘들은 전부 무한히 빠를 것이다.
- 따라서, 어떤 기법이든 가장 쉽게 구현할 수 있는 것을 자주 사용하게 된다.
- 하지만 컴퓨터는 엄청 빠를 순 있지만, 무한히 빠를 수 없다.
마찬가지로, 메모리도 매우 저렴하 순 있지만, 비용이 전혀 들지 않을 수 없다.
- 결국 우리는 가장 효율적인 알고리즘과 자료구조를 찾아야만 한다.
2. 효율성
- 동일한 문제를 해결하기 위한 알고리즘이 효율성 면에서 극적으로 다를 수 있다.
- 잘 설계된 알고리즘은 효율성이 낮은 알고리즘보다 계산/시간적인 차원에서 문제의 크기가 커질수록 그 상대적인 장점도 커진다
- 알고리즘에 대한 지식과 기술을 얼마나 알차게 학습하였는가는 숙련된 개발자와 초보자를 구분하는 기준이 된다.
'CS Study > CLRS (자료구조 | 알고리즘)' 카테고리의 다른 글
[CLRS] [2-4] Bubble Sort(버블 정렬) (0) | 2024.09.04 |
---|---|
[CLRS] [2-3] Merge Sort(병합 정렬) (1) | 2024.09.04 |
[CLRS] [2-2] Analyzing algorithms (0) | 2024.09.02 |
[CLRS] [2-1] 삽입 정렬(Insertion sort)? (0) | 2024.09.01 |
[CLRS] [1-1] Algorithms? (1) | 2024.09.01 |