이곳은 개발을 위한 베타 사이트 입니다.기여내역은 언제든 초기화될 수 있으며, 예기치 못한 오류가 발생할 수 있습니다.문서의 임의 삭제는 제재 대상으로, 문서를 삭제하려면 삭제 토론을 진행해야 합니다. 문서 보기문서 삭제토론 배열 (문단 편집) == 개요 == [[프로그래밍 언어]]에서 지원하는 자료형 또는 [[컴퓨터공학]]에서 사용하는 [[자료구조]]의 하나이다. 순서대로 번호가 붙은 원소들이 연속적인 형태로 구성된 구조를 뜻하며, 이때 각 원소에 붙은 번호를 흔히 첨자(인덱스, index)라고 부른다. 원소들이 연속적으로 배치되어 있기에, 임의의 첨자로 각 원소를 접근하는 데에 드는 시간복잡도는 [[점근 표기법|O(1)]]이다. 따라서 임의 접근(random access)이 가능한 자료구조에 속한다. 메모리 주소가 연속될 것을 요구하기 때문에 배열의 크기를 늘리는 것은 절대 불가능하며, 배열의 크기를 늘릴 필요가 있을 때에는 크기가 큰 새 배열을 만들고 기존 내용을 복사하거나, 배열의 일부를 연결 리스트 등으로 다른 곳과 연결하는 등의 방법이 쓰인다. 배열에서 사용할 수 있는 연산은 보통 다음과 같다. * 일정한 길이의 빈 배열을 만든다. * 배열의 길이를 알아본다. * 주어진 위치에 있는 원소를 알아본다. 원소를 찾는 데에 드는 시간은 [[점근 표기법|O(1)]]. * 주어진 위치에 새로운 원소를 대입한다. 마찬가지로 위치를 찾는 데에 걸리는 시간은 [[점근 표기법|O(1)]]. * 주어진 위치에 있는 원소를 삭제한다. 이때 배열의 길이가 하나 줄어들며 [[점근 표기법|O(n)]]만큼의 시간이 걸린다. [[연결 리스트]]와 비교하면 임의 접근이 가능하지만 요소의 삽입/삭제가 느린 단점이 있다. 반면 연결 리스트는 순차 접근만 가능하기 때문에 임의의 위치에 있는 원소를 찾는 것은 느리지만 일단 위치를 알면 삽입/삭제는 배열에 비해 빠르다. [[튜링 머신]]의 현신이나 마찬가지인 현대 [[컴퓨터]] 구조의 특성상[* 메모리 모델 자체가 일종의 커다란 배열이며 메모리 주소가 곧 인덱스나 다름없다.] 하드웨어적인 [[버프]]를 상당히 많이 받는 자료구조로[* 대부분의 CPU가 캐시를 적용하는 기준이 일정 크기의 연속된 메모리 영역이며, 심지어 SIMD처럼 고정 길의의 메모리에 한번에 연산하는 기계어 셋도 존재한다.], 다른 자료구조를 구현할 때도 이런 특성을 활용해서 최적화를 하는 경우가 있다.[* 예: 연결 리스트를 그냥 구현하면 사용하는 메모리 영역이 사방에 흩어지는데, 메모리 풀을 구현해서 접근하는 메모리 영역의 범위를 좁혀 캐시 적중률을 높일 수 있다.] 물론 그만큼 성능이 엄청나게 절실할 때의 얘기. 2011년 대학수학능력시험 '''언어영역'''에 [[연결 리스트]]와 비교하는 문제가 등장하여 수많은 문과생들을 충공깽에 빠뜨렸다. [[http://www.ppomppu.co.kr/zboard/view.php?id=humor&no=64802|#]] ~~[[프로그래밍 언어]]영역~~[* 배열은 그렇다 쳐도 연결 리스트는 컴퓨터공학 전공과정에서도 보통 2학년은 되어야 등장하는 개념으로, [[프로그래밍]]에 대한 경험이 전혀 없는 사람이 주어진 지문만으로 이해하는 것은 어렵다. 물론, 언어영역 자체가 지문에서 질문에 해당하는 내용을 찾는 것만 요구하기 때문에, 배경지식과 관계없이 지문을 파악하는 능력만 갖춰진다면 맞출 사람은 다 맞추는 게 함정. 원래 수능 언어영역에는 오만가지 전문개념이 등장하므로 연결 리스트가 출제된게 전혀 특별한 일은 아니지만, 이공계열 지식은 특히나 일반인들에게는 '범접할 수 없는 것' 등의 더욱 동떨어진 인식이다 보니 유독 임팩트가 크게 다가오곤 한다. 철학이나 법 같은 인문계열처럼 일단 '한국어만 할 줄 알면' 파악할 수 있는 분야와 달리 이쪽은 한국어로 적어놔도 내용이해에서 막히기 때문.] 배열의 첨자는 보통 주어진 범위 사이의 연속적인 숫자로 제한되는데, 이 제한을 없애고 임의의 값을 첨자로 쓸 수 있게 하는 대신 순서성을 포기하면 연관 배열이 된다.저장 버튼을 클릭하면 당신이 기여한 내용을 CC-BY-NC-SA 2.0 KR으로 배포하고,기여한 문서에 대한 하이퍼링크나 URL을 이용하여 저작자 표시를 하는 것으로 충분하다는 데 동의하는 것입니다.이 동의는 철회할 수 없습니다.캡챠저장미리보기