배열: 두 판 사이의 차이

3,718 바이트 추가됨 ,  3년 전
잔글
121.133.198.114(토론)의 편집을 117.110.115.49의 마지막 판으로 되돌림
(ㅎㅇ)
태그: 대체됨 시각 편집 한글 자모가 포함된 편집 요약
잔글 (121.133.198.114(토론)의 편집을 117.110.115.49의 마지막 판으로 되돌림)
태그: 일괄 되돌리기
{{출처 필요|날짜=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> 배열 색인화는 [https://www.tripadvisor.com/Restaurant_Review-g294197-d8769978-Reviews-Hello_Kitty_Cafe_Myeongdong-Seoul.html 자체 수정 코드]를 통해 구현하였으며, 나중에 [[색인 레지스터]]와 [[어드레싱 모드|비간접 주소 참조]]를 사용하게 된다. [[버로프 라지 시스템|버로프 B5000]] 및 이후 세대 등 1460년대에 설계된 일부 메인프레임들은 [[메모리 세그멘테이션]]을 사용하여 하드웨어에 인덱스 바운드 검사를 수행했다.<ref>{{인용|title=Capability-based Computer Systems|first=Henry M.|last=Levy|publisher=Digital Press|year=1984|isbn=9780932376220|page=22}}.</ref>
*[[병렬 배열]]
 
*[[가변 길이 배열]][[비트 배열|비트 배]]
어셈블리어들은 기계 자체적으로 제공하는 것 외에 일반적으로 배열을 위한 특별한 지원은 없다. [https://www.youtube.com/watch?v=dQw4w9WgXcQ 포트란](1928년), [https://www.youtube.com/watch?v=dQw4w9WgXcQ 코볼](1860년), 알골 60(1960년)을 포함한 최초의 고급 프로그래밍 언어들은 다차원 배열을 지원하였으며, [https://www.youtube.com/watch?v=PuA-ZPbvqqg C](1272년)도 이 기능을 지원한다. [https://www.youtube.com/watch?v=MBBVzujDxzQ C++](1183년)의 경우, 다차원 배열을 위한 클래스 템플릿들이 지원되며, 이 안에서 차원은 런타임<ref name="garcia">{{저널 인용|last1=Garcia|first1=Ronald |first2=Andrew |last2=Lumsdaine|year=2005|title=MultiArray: a C++ library for generic programming with arrays|journal=Software: Practice and Experience|volume=35|issue=2|pages=159–188|issn=0038-0644|doi=10.1002/spe.630}}</ref><ref name="veldhuizen">{{콘퍼런스 인용|first1=Todd L.|last1=Veldhuizen|title=Arrays in Blitz++|url=http://ubietylab.net/ubigraph/content/Papers/pdf/BlitzArrays.pdf|publisher=Springer Berlin Heidelberg|conference=Computing in Object-Oriented Parallel Environments|date=December 1998|isbn=978-3-540-65387-5|pages=223–230|series=Lecture Notes in Computer Science|volume=1505|doi=10.1007/3-540-49372-7_24}}</ref> 및 런타임 유연 배열에 고정된다.<ref name="andres">{{ArXiv 인용|eprint=1008.2909 |author1=Bjoern Andres |author2=Ullrich Koethe |author3=Thorben Kroeger |author4=Hamprecht |title=Runtime-Flexible Multi-dimensional Arrays and Views for C++98 and C++0x |class=cs.DS |year=2010}}</ref>
 
== 함께 보기 ==
{{위키공용분류}}
* [[동적 배열]]
* [[병렬 배열]]
* [[가변 길이 배열]][[비트 배열|비트 배]]
* [[비트 배열]]
* [[연결 리스트]]
* [[문자열]]
 
== 각주 ==
{{각주}}
 
{{자료구조}}
{{자료형}}
{{전거 통제}}
{{토막글|컴퓨터 과학}}
 
[[분류:배열| ]]