Data structure

배열 (Array)

MoveForward 2021. 7. 9. 17:12

배열(Array)은 동일한 자료형의 여러 데이터를 하나의 이름으로 그룹핑을 하여 관리하기 위한 자료구조이다.

수학적으로 표현 한다면, “(index, value)로 이루어진 순서쌍들의 집합”으로 할 수 있다.

배열은 거의 모든 프로그래밍 언어에서 지원하는 자료형으로 많은 자료 구조들이 배열을 사용하여 구현된다.

 

배열은 데이터가 적을 때는 거의 사용하지 않는다. -> 각각의 변수를 선언해주면 됨

데이터가 많은 때 -> 모든 데이터가 각각 존재하게 되는 경우 데이터를 이용하기 어려워짐 -> 데이터를 그룹관리 해야 할 필요성이 생기게 됨 -> 배열 사용

 

배열 사용의 장점

배열을 사용하면 연속적인 메모리 공간이 할당되고 인덱스(index) 번호를 사용하여 쉽게 접근이 가능하기 때문에 반복루프를 이용하여 여러 가지 작업을 손쉽게 할 수 있다.

 

 

배열(Array)과 리스트(List)의 차이점

 

  • 새로운 데이터를 대입하는 경우

index = 2 (3번째 위치)value = 77을 대입 하는 경우

배열은 기존 값이 삭제되고 새값으로 덮어쓰기

리스트는 기존 값이 리스트 순서에서 뒤로 밀리고 새값이 추가

 

(배열에 새로운 데이터를 대입 할 수 있는 여분 공간이 있음을 전제)


  •  반대로 값을 삭제하는 경우

index = 3(4번째 위치)의 데이터을 삭제 하는 경우

 

 

배열은 삭제된 인덱스의 값은 빈칸으로 남게 됨 [ ex) 치과예약 ]

리스트는 삭제된 값의 빈자리를 뒷값이 순서를 앞당겨서 메워줌 [ ex) 놀이기구 대기줄 ]

 

배열의 삭제된 데이터가 맨 마지막 데이터일 경우 배열을 활용하는데 문제가 없지만, 위 이미지와 같이 배열의 중간 순서의 데이터가 삭제 되는 경우에는 배열 중간에 공백이 없도록 공백 오른쪽의 모든 데이터들을 땡겨와야 한다.