JB의 이모저모

배열 (Array) 본문

자료구조(Data Structure)

배열 (Array)

J B 2024. 9. 13. 17:43

배열(Array)


모든 요소가 순차적으로 배열된 선형 데이터 구조

연속된 메모리 위치에 저장된 동일한 데이터 유형의 요소의 컬렉션

배열의 각 항목은 0부터 시작하여 인덱싱, 인덱스 값을 사용하여 배열 요소에 직접 액세스 가능

 

시간복잡도


인덱스를 알고 있다면, 인덱스에 접근하는 시간복잡도는 O(1)이다.

데이터를 배열에 삽입을 하려면 기존에 있는 데이터를 한 칸 shift 한 후 데이터를 넣어야 하기에 시간복잡도는 O(n)이 걸린다.

마찬가지로 배열에서 데이터를 삭제하는 작업 또한 삭제한 뒤, 나머지 데이터들을 한 칸 shift 해줘야 해서 삽입과 마찬가지로 시간복잡도가 O(n)이 걸리게 된다.

 

장점


  • 구현이 쉽다
  • 검색 기능이 좋다
  • 인덱스(index)를 이용한 무작위 접근(random access)이 가능하므로 검색에서 빠른 성능

 

단점


  • 선언할 때 크기가 고정되어 메모리가 모자라는 경우 모든 요소를 새로운 메모리로 이동해야한다
  • 요소를 중간에 삽입하거나 삭제 시 해당 요소 뒤에 있는 요소들의 인덱스를 조정해야한다. -> 복잡하고 비효율적

'자료구조(Data Structure)' 카테고리의 다른 글

자료구조(Data Structure)  (0) 2024.09.13
트리(Tree)  (0) 2024.09.13
스택(Stack)  (0) 2024.09.13
큐 (Queue)  (0) 2024.09.13
연결 리스트 (Linked List)  (0) 2024.09.13