ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 리스트, 딕셔너리의 주요 연산 시간 복잡도
    Algorithm PS👩🏻‍💻/개념 2024. 3. 4. 10:29

    리스트의 주요 연산 시간 복잡도

    • 입력 순서가 유지, 내부적으로는 동적 배열로 구현되어 있다.
    연산  설명
    len(a) 전체 요소의 개수를 리턴한다.
    a[i] 인덱스 의 요소를 가져온다.
    a[i:j] 부터 까지 슬라이스의 길이만큼 개의 요소를 가져온다. 이 경우 객체 개에 대한 조회가 필요하므로 이다.
    elem in a elem 요소가 존재하는지 확인한다. 처음부터 순차 탐색하므로 만큼 시간이 소요된다.
    a.count(elem) elem 요소의 개수를 리턴한다.
    a.index(elem) elem 요소의 인덱스를 리턴한다.
    a.append(elem) 리스트 마지막에 elem 요소를 추가한다.
    a.pop() 리스트 마지막 요소를 추출한다. 스택의 연산이다.
    a.pop(0) 리스트 첫번째 요소를 추출한다. 큐의 연산이다. 이 경우 전체 복사가 필요하므로 이다.
    del a[i] i에 따라 다르다. 최악의 경우 이다.
    a.sort() 정렬한다. 팀소트(Timsort)를 사용하며, 최선의 경우 에도 실행될 수 있다.
    min(a), max(a) 최솟값/최댓값을 계산하기 위해서는 전체를 선형탐색해야 한다.
    a.reverse() 뒤집는다. 리스트는 입력 순서가 유지되므로 뒤집게 되면 입력 순서가 반대로 된다.

    딕셔너리의 주요 연산 시간 복잡도

    • 파이썬 3.7+ 부턴 입력 순서가 유지됨, 내부적으로는 해시 테이블로 구현되어 있다.
    연산 설명
    len(a) 요소의 개수를 리턴한다.
    a[key] 키를 조회하여 값을 리턴한다.
    a[key] = value 키/값을 삽입한다.
    key in a 딕셔너리에 키가 존재하는지 확인한다

     

Designed by Tistory.