- Today
- Total
Recent Posts
Recent Comments
Archives
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- selenium
- 알고리즘 강좌
- 셀레니움
- 파이썬 자료구조
- 자료구조 강의
- 파이썬3
- 크롤링
- python data structure
- 파이썬
- 파이썬 입문
- 알고리즘 강의
- 프로그래밍
- 기말시험
- 대학시험
- 채용문제
- gdrive
- 코딩문제
- python 중간고사
- 중간시험
- 자료구조
- 알고리즘
- 면접 파이썬
- 코딩시험
- 파이썬 강의
- 파이썬 강좌
- 파이썬활용
- 파이썬 알고리즘
- Crawling
- 쉬운 파이썬
- c언어
Notice
반원 블로그
03b. 성능 분석의 기준 본문
양질의 자료구조와 알고리즘을 구분하는 기준
시간은 귀중합니다. 그렇기에 양질을 판단하는 대표적 척도는 실행시간(Running time) 입니다. 자료구조의 연산, 알고리즘이 수행하는 절차에서 효율성에 관심을 가져야합니다. 또한 메모리 사용 크기(공간)도 고려해야합니다. 단순히 용량 뿐만 아니라 실행시간에 영향을 주기 때문이죠.(쓸 데 없이 짐이 크면 나르기 힘들잖아요.)
추가로 처리해야되는 데이터의 개수와 크기에 따라 어떻게 실행시간이 바뀌는 지에 대한 관계도를 고려해야합니다. 경우에 따라 격차가 작을수도, 엄청 클 수도 있기 때문인데, 이에 대해서 빅오(Big-Oh) 표기법에서 알아봅시다.
시간 복잡도와 공간 복잡도
최적의 알고리즘은 시간 복잡도와 공간 복잡도로 분석한 결과가 좋음을 뜻합니다. 시간 복잡도(time complexity)는 '속도'에 관한 분석 결과, 공간 복잡도(space complexity)는 '메모리 사용량'에 대한 분석 결과입니다. 즉. 메모리도 적게 쓰고 속도도 최고로 빨라야 최적 알고리즘이죠.
그러나 시간이 지날수록 메모리에 대해서는 외부적 요인(하드웨어 부품 개발 등)으로 개선되거나 비교 대상이 메모리에 대해서는 동일한 조건일 경우가 많고, 시간 복잡도와 공간 복잡도를 동시에 사용하여 어느 것이 더 좋다를 판단하기 애매합니다. 그래서 보통 '속도'에 집중하여 판단합니다.
위키독스 연재 : https://wikidocs.net/book/2868
'2018~ > 파이썬 자료구조 알고리즘' 카테고리의 다른 글
03d. 시간 복잡도 계산과 빅오(Big-Oh) 표기법 (0) | 2019.05.10 |
---|---|
03c. 속도 기준 알고리즘 비교 (0) | 2019.05.09 |
03. 성능분석 기법 (0) | 2019.05.07 |
03a.자료구조와 알고리즘 (0) | 2019.05.07 |
02c. 이중 연결 리스트(doubly linked list) - v. 탐색 (0) | 2019.05.06 |
02c. 이중 연결 리스트(doubly linked list) - iv. 삭제 (0) | 2019.05.05 |
02c. 이중 연결 리스트(doubly linked list) - iii. 출력 (0) | 2019.05.04 |
02c. 이중 연결 리스트(doubly linked list) - ii. 삽입 (0) | 2019.05.03 |
Comments