ch1. 자료구조와 알고리즘

mtak·2022년 9월 6일
0

자료구조는 왜 필요할까?

자료를 잘 조직화해서 저장해야 어떤 문제를 해결할 때(=알고리즘) 데이터를 효율적으로 사용할 수 있기 때문이다. 저장하는 자료의 갯수에 따라 단순 자료구조(숫자, 문자...)와 복합자료구조(컨테이너...)로 나눠진다. 복합자료구조는 자료가 복잡한 연결 관계를 가지는 구조로 저장되냐(그래프, 트리...) 아니냐(스택, 큐, 리스트...)에 따라 비선형구조와 선형구조로 나뉜다.

추상 자료형(ADT=Abstract Data Type)

내부 매커니즘은 숨기고(=정보 은닉) 자료를 핸들링할 수 있는 인터페이스만 제공하기때문에 "추상" 자료형이다.

알고리즘의 실행시간 효율은 어떻게 분석해?

방법 1. 시-작 해서 시간 저장하고 측정할 코드블럭 끝나면 끝나는 시간 저장한다.

import time
start_time = time.time()
[blabla]
elapsed_time = time.time() - start_time

방법 2. 연산의 실행 시간이 동일하다고 치고 연산의 횟수를 센다.
계수는 무시하자.

  • 빅오 표기법 (upper boundary)
    아무리 느려도 이 이상은 안넘어간다.
  • 빅오메가 표기법 (lower boundary)
    아무리 빨라도 이보다는 안줄어든다.
  • 빅세타 표기법 (tight boundary)
    빅오랑 빅오메가가 같을 때 빅세타로 표기할 수 있다.
profile
노는게 젤 조아. 친구들 모여라!!

0개의 댓글