본문 바로가기

# Foundation/자료구조

배열

이 블로그의 모든 예제코드는 깃허브에서도 볼 수 있습니다.
아래의 포스트는 개인적인 용도로 내용을 요약한 것 입니다.

    https://github.com/AeroCodeX/

배열

여기서 배열은 고정배열을 의미한다.

동적이든 정적이든 생성되는 시점에서 크기가 고정된 배열을 의미한다.



배열의 특성

  • 메모리 위에서 일렬로 인접하게 저장된다.
  • 한번 정해진 데이터의 수용량을 확장하기 힘들다.
  • 어떤 위치든 빠르게 데이터를 얻을 수 있다.  (상수시간)
  • 처음이나 중간에 데이터를 삽입하려면 데이터를 한칸씩 뒤로 밀어내야 한다.  (선형시간)
  • 처음이나 중간에 데이터를 삭제하려면 데이터를 한칸씩 앞으로 당겨야 한다.  (선형시간)
  • 마지막 위치에서 데이터를 삽입/삭제하는 것은 빠르다.  (상수시간)




배열로 구현한 인터페이스의 특성

  • 중간지점의 데이터를 빠르게 조회활 수 있다.  (상수시간)
  • 수용크기를 넘어서면,  더 큰 배열을 할당하고 복사한뒤 진행한다.  (선형시간)
  • 중간지점에서 데이터를 삽입하거나 제거할 때, 큰 오버헤드를 갖는다.  (선형시간)


'# Foundation > 자료구조' 카테고리의 다른 글

스킵 리스트  (0) 2019.02.03
벡터  (0) 2019.02.02
이중 연결 리스트  (0) 2019.01.31
단일 연결 리스트  (0) 2019.01.31
자료구조와 추상적 자료형  (0) 2019.01.31