List 와 Set의 차이
파이썬의 List
Array List vs Linked List
배열의 특성
배열의 정의
int arr[5] = {3,7,4,2,6}
Random access
**array**
의 시간복잡도는 **O(1)**
이지만 , **linked list**
는 n번의 연산을 해야하므로 시간복잡도는 **O(n)**
이 된다.Static array의 한계
Dynamic Array 정의
Dynamic Array의 변수할당과 Resizing 과정
**O(1)**
의 시간복잡도이지만, 배열의 크기를 늘리는 Resizing은 **O(n)**
의 시간복잡도가 소요된다.**O(n)**
의 시간복잡도가 발생하는 것이다.Dynamic Array의 사용법
list
자료형을 통해 dynamic array를 이미 잘 구현해 두었기에 직접 dynamic array를 구현할 필요없이 list 자료형을 사용하면 된다.list
를 사용하면 된다.list
의 연산(operation)
들과 시간복잡도 이다.List 연산
a = [1,2,3]
a.extend([4,5])
>>> [1, 2, 3, 4, 5]
b = [6, 7]
a.extend(b)
>>> [1, 2, 3, 4, 5, 6, 7]
Array List의 시간복잡도
**O(n)**