오뚝이개발자

[Python] 파이썬 내장함수 시간복잡도 본문

Language/파이썬

[Python] 파이썬 내장함수 시간복잡도

땅어 2020. 12. 15. 16:59
728x90
300x250

 

시간복잡도


아래는 자주 등장하는 시간복잡도 표기들이다. 표에서 아래로 갈수록 수행시간이 오래 걸린다.

 

list


리스트는 배열이다. 그렇기 때문에 사이즈가 커질수록 삽입과 삭제 연산이 비효율적으로 된다. 이럴 땐 차라리 deque를 쓰는 것이 효율적이다.

Operation

Average

Worst

Copy

O(n)

O(n)

Append

O(1)

O(1)

Pop last

O(1)

O(1)

Pop intermediate

O(k)

O(k)

Get item

O(1)

O(1)

Set item

O(1)

O(1)

Delete item

O(n)

O(n)

sort

O(nlogn)

O(nlogn)

min,max

O(n)

O(n)

len

O(1)

O(1)

 

collections.deque


deque(double ended queue)는 내부적으로 doubly linked list로 구현되어 있다. 양 끝단에 접근이 가능하다. 하지만 중간 원소에 접근하는 것은 느리다.

Operation

Average

Worst

Copy

O(n)

O(n)

Append

O(1)

O(1)

Appendleft

O(1)

O(1)

Pop

O(1)

O(1)

Popleft

O(1)

O(1)

 

dict


여기서 말하는 average case는 해시함수가 충돌을 일으키지 않도록 견고하게 설계된 경우를 말한다.

Operation

Average

Worst

Copy

O(n)

O(n)

Get item

O(1)

O(n)

Set item

O(1)

O(n)

Delete item

O(1)

O(n)

 

참고

daimhada.tistory.com/56

728x90
300x250
Comments