배열: 두 판 사이의 차이

1,722 바이트 추가됨 ,  6년 전
편집 요약 없음
잔글 (봇: 틀 이름 및 스타일 정리)
편집 요약 없음
{{출처 필요|날짜=2013-11-29}}
[[컴퓨터 과학]]에서 '''배열'''({{llang|en|array}}, 配列·排列, {{문화어|배렬}})은 번호(인덱스)와 번호에 대응하는 데이터들로 이루어진 [[자료 구조]]를 나타낸다. 일반적으로 배열에는 같은 종류의 데이터들이 순차적으로 저장되어, 값의 번호가 곧 배열의 시작점으로부터 값이 저장되어 있는 상대적인 위치가 된다. 대부분의 [[프로그래밍 언어]]에서 사용할 수 있는 가장 기초적인 자료 구조로, 기본적인 용도 외에 다른 복잡한 자료 구조들을 표현하기 위해서 또는 [[행렬]], [[벡터 (선형대수학)|벡터]] 등을 컴퓨터에서 표현하는 용도 등으로도 사용된다.
 
== 역사 ==
최초의 디지털 컴퓨터들은 기계어 프로그래밍을 사용하여 수많은 목적을 위해 데이터 테이블, 벡터, 매트릭스 계산의 배열 구조를 설정하고 접근하였다. [[존 폰 노이만]]은 [[에드박|최초의 저장식 프로그램 컴퓨터]]를 제조하던 1945년 [[머지 소트]]라는 최초의 배열 정렬 프로그램을 작성하였다.<ref>Donald Knuth, ''[[The Art of Computer Programming]]'', vol. 3. Addison-Wesley</ref><sup>p.&nbsp;159</sup> 배열 색인화는 [[자체 수정 코드]]를 통해 구현하였으며, 나중에 [[색인 레지스터]]와 [[어드레싱 모드|비간접 주소 참조]]를 사용하게 된다. [[버로프 라지 시스템|버로프 B5000]] 및 이후 세대 등 1960년대에 설계된 일부 메인프레임들은 [[메모리 세그멘테이션]]을 사용하여 하드웨어에 인덱스 바운드 검사를 수행했다.<ref>{{인용|title=Capability-based Computer Systems|first=Henry M.|last=Levy|publisher=Digital Press|year=1984|isbn=9780932376220|page=22}}.</ref>
 
어셈블리어들은 기계 자체적으로 제공하는 것 외에 일반적으로 배열을 위한 특별한 지원은 없다. [[포트란]](1957년), [[코볼]](1960년), [[알골|알골 60]](1960년)을 포함한 최초의 고급 프로그래밍 언어들은 다차원 배열을 지원하였으며, [[C (프로그래밍 언어)|C]](1972년)도 이 기능을 지원한다. [[C++]](1983년)의 경우, 다차원 배열을 위한 클래스 템플릿들이 지원되며, 이 안에서 차원은 런타임<ref name="garcia" /><ref name="veldhuizen" /> 및 런타임 유연 배열에 고정된다.<ref name="andres" />
 
== 함께 보기 ==
* [[연결 리스트]]
* [[문자열]]
 
== 각주 ==
{{각주}}
 
{{자료구조}}