●Array List(Vector)

 ▷Array의 개념을 확장한것으로, 연속된 object들을 저장

 ▷저장, 삽입, 삭제는 모두 index를 통해 이루어짐.

 ▷중간에 빈 인덱스가 있을 수 없음.

  ▶주요 명령

   ▷at(index): index에 있는 object 반환

   ▷set(index, object): index에 해당 object 할당.

   ▷insert(index): index에 해당 object 삽입

   ▷erase(index): index에 있는 object 제거.

  ▶보조 명령

   ▷size(): deque의 elements의 수를 반환

   ▷empty(): deque가 비어있으면 True, 아니면 False를 반환

 

○Array-based Array list

 ▷Size N의 Vector 사용, 공간 O(n)차지.

 ▷Array list의 크기를 나타내는 정수 n

 ▷at(i) = A[i], set(i, o) = A[i] = o -> O(1)

 ▷insert(i, e) -> O(n), 최대 이상일경우 마지막 원소

 ▷erase(e) -> O(n)

 

 ▶Growable Array-based Array List

  ▷배열이 다 찬 상태에서 insert할 경우, 크기가 더 큰 새로운 배열을 만들어 넣음.

  ▷T(n) : n까지 insert하는데 걸리는 시간 -> insert 한번 당 평균 시간: T(n)/n

  ▶Incremental Strategy (상수 c만큼 크기 늘림)

   ▷배열을 k = n/c번 대체

   ▷T(n) = O(n^2), 1회 평균 O(n)

 

  ▶Doubling Strategy (2배만큼 크기 늘림)

   ▷배열을 k = log_2(n)번 대체

   ▷T(n) = O(n), 1회 평균 O(1)

 

'컴퓨터 지식 > 자료구조' 카테고리의 다른 글

Iterator, Container  (0) 2020.11.06
Position, Node List  (0) 2020.11.06
Adapter  (0) 2020.10.28
Deque  (0) 2020.10.28
Quene  (0) 2020.10.13

+ Recent posts