배열(Array)은 동일한 자료형의 여러 데이터를 하나의 이름으로 그룹핑을 하여 관리하기 위한 자료구조이다.
수학적으로 표현 한다면, “(index, value)로 이루어진 순서쌍들의 집합”으로 할 수 있다.
배열은 거의 모든 프로그래밍 언어에서 지원하는 자료형으로 많은 자료 구조들이 배열을 사용하여 구현된다.
배열은 데이터가 적을 때는 거의 사용하지 않는다. -> 각각의 변수를 선언해주면 됨
데이터가 많은 때 -> 모든 데이터가 각각 존재하게 되는 경우 데이터를 이용하기 어려워짐 -> 데이터를 그룹관리 해야 할 필요성이 생기게 됨 -> 배열 사용
배열 사용의 장점
배열을 사용하면 “연속적인 메모리 공간”이 할당되고 인덱스(index) 번호를 사용하여 쉽게 접근이 가능하기 때문에 반복루프를 이용하여 여러 가지 작업을 손쉽게 할 수 있다.
※배열(Array)과 리스트(List)의 차이점
- 새로운 데이터를 대입하는 경우
index = 2 (3번째 위치)에 value = 77을 대입 하는 경우
배열은 기존 값이 삭제되고 새값으로 덮어쓰기
리스트는 기존 값이 리스트 순서에서 뒤로 밀리고 새값이 추가
(배열에 새로운 데이터를 대입 할 수 있는 여분 공간이 있음을 전제)
- 반대로 값을 삭제하는 경우
index = 3(4번째 위치)의 데이터을 삭제 하는 경우
배열은 삭제된 인덱스의 값은 빈칸으로 남게 됨 [ ex) 치과예약 ]
리스트는 삭제된 값의 빈자리를 뒷값이 순서를 앞당겨서 메워줌 [ ex) 놀이기구 대기줄 ]
배열의 삭제된 데이터가 맨 마지막 데이터일 경우 배열을 활용하는데 문제가 없지만, 위 이미지와 같이 배열의 중간 순서의 데이터가 삭제 되는 경우에는 배열 중간에 공백이 없도록 공백 오른쪽의 모든 데이터들을 땡겨와야 한다.
'Data structure' 카테고리의 다른 글
[C언어로 쉽게 풀어쓴 자료구조] Chapter 2 순환 - 팩토리얼(순환,반복) / 거듭제곱(순환,반복) / 파보나치 수열(순환,반복) (0) | 2022.02.15 |
---|---|
기수 정렬 (radix sort) (0) | 2021.07.18 |
힙 / 힙 정렬 (Heap / Heap Sort) (0) | 2021.07.17 |
정렬2 (Sorting) (0) | 2021.07.12 |
정렬 1 (Sorting) (0) | 2021.07.10 |