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