파이썬 시간 복잡도 (Big-O) 정리

백전능 JeonNeung Baek·2024년 9월 6일
0
post-thumbnail
  • 복잡도 비교

    O(1)<O(log(n))<O(n)<O(nlog(n))<O(n2)<O(2n)O(1) < O\big(log(n)\big) < O(n) < O\big(nlog(n)\big) < O(n^2) < O(2^n)

  • 리스트

    기능예시복잡도설명
    1Indexarr[i]O(1)O(1)인덱스로 값 찾기
    2Storearr[i] = 0O(1)O(1)인덱스로 데이터 저장
    3Lengthlen(arr)O(1)O(1)리스트 길이
    4Appendarr.append(x)O(1)O(1)리스트 뒤에 데이터 저장
    5Poparr.pop()O(1)O(1)리스트 가장 뒤의 데이터 pop
    6Cleararr.clear()O(1)O(1)리스트를 비워 []으로 만듦
    7Slicearr[a:b]O(ba)O(b-a)슬라이싱 되는 요소의 수 만큼 비례
    8Extendarr.extend(...)O(len(...))O(len(...))확장되는 길이에 비례
    9Constructionlist(...)O(len(...))O(len(...))리스트 길이에 비례
    10check ==, !=arr1==arr2O(n)O(n)리스트가 동일한지 확인
    11Insertarr[a:b]=...O(n)O(n)데이터 삽입
    12Deletedel arr[i]O(n)O(n)인덱스 활용 데이터 제거
    13Containmentx in arrO(n)O(n)포함여부 확인
    14Copyarr.copy()O(n)O(n)복제
    15Removearr.remove(...)O(n)O(n)값 활용 데이터 제거, 한 번에 하나만
    16Poparr.pop(i)O(n)O(n)제거된 값 이후를 전부 한칸씩 당겨줘야함
    17Extreme Valuemax(arr),min(arr)O(n)O(n)전체 데이터 확인 필요
    18Reversearr.reverse()O(n)O(n)리스트 순서 뒤집기
    19Iterationfor x in arr:O(n)O(n)전체 데이터 확인
    20Sortarr.sort()O(nlog(n))O(n*log(n))파이썬 기본 정렬 알고리즘
    21Multiplyk*arrO(kn)O(k*n)리스트 곱
  • 집합

  • 딕셔너리

  • 튜플

profile
Image Restoration, Video Coding, Computer Vision

0개의 댓글