오늘은 Queue와 Stack에 이어서 Array 배열 공부한 내용 정리입니다.
목차
Array 배열 정리
1. Array 개념
- 연속적인 메모리 할당
- 데이터 접근만 많이 이루어질 때 유용합니다.
- 거의 모든 언어에서 지원되는 타입 입니다.
- 많은 데이터 스트럭쳐들이 부품으로 사용합니다.
- 데이터 적을 때는 사용하지 않아도 되지만 많은 때 사용하면 효율적입니다.
- 예시) 학생 2명을 얘기 할 때는 괜찮지만 1반, 1학년 단위로 할 때는 그룹핑하여 관리하면 좋습니다.
2. Array 배열 생성
- student[0] = “학생1”
- student[1] = “학생2”
- …… student[9] = “학생9”
3. 장점과 단점
- 장점 : 특정 원소 접근 시 빠르게 접근 가능합니다. / 접근 속도 항상 일정합니다.
- 예시) a[1] = 2;
- 단점 : 만약 밑에 그림처럼 앞에 데이터가 삭제가 되면 모든 데이터가 한칸씩 앞으로 옮겨야 하기 때문에 데이터 이동하는 횟수가 많아집니다. 반대로 중간에 추가 되어도 한칸씩 뒤로 밀리기 때문에 똑같이 데이터 이동이 많아 집니다.
- 예시) 식당에서 줄서는 경우로 생각을 하면 됩니다. 중간에 새치기 하거나 앞사람 이동하면 앞으로 한칸씩 당겨지는 경우 입니다.
그리고 데이터 값을 맨 마지막 값을 제거 되는 숫자 앞으로 옮기거나 중간에 들어오는 값을 맨마지막에 넣을 수 없는 이유는 정렬된 데이터 유지가 붕괴 되기 때문에 어려움이 있습니다.