: 데이터를 메모리 영역 중 인접한 부분에 저장한다.
선형 데이터 구조를 이루며 일정한 순서에 따라 개별 데이터 요소에 접근할 수 있는 인덱스 기반의 데이터 구조
ex) 배열, 힙, 매트릭스, 해시테이블 등
: 서로 명확히 구분되는 메모리 영역을 차지하되, 포인터라는 주소 체계로 연결/관리되는 구조
ex) 목록(list), 트리(trees), 그래프
연결 데이터 구조 = 데이터 타입 + 포인터(다른 데이터와 묶어줌)
: 연결 데이터 구조 중 하나로, 일련의 노드로 구성되며, 각 노드는 링크 필드를 통해 서로 연결되어 있다.
: 하나의 객체만을 지니며, 해당 타입의 데이터가 변수 또는 상수에 할당되거나 함수에 전달될 때 값을 복사한다.
ex) 구조체, 열거형 등이 벨류 타입이며 스위프트의 모든 데이터 타입은 기본적으로 구조체이다.
: 값을 복사하지 않고 공유한다. 변수에 할당하거나 함수에 전달할 때 값을 복사해서 제공하지 않고 동일한 인스턴스를 참조값으로 활용한다.
ex) 클래스, 클로져
: 사용자가 정의할 수 있는 데이터 타입이며, 해당 타입이 정의될 대 이름을 부여할 수 있는 타입이다.
ex) 클래스, 구조체, 열거형, 프로토 타입
: 별도의 이름이 붙여지지 않은 타입이며, 기명 타입이나 다른 복합 타입을 포함할 수 있다.
ex) function, tuples
(Int, (Float, Float) => Int 기명 타입과 (Float, Float) 복합 타입을 가지는 튜플
: 소규모 입력 데이터에서는 삽입 정렬 알고리즘이 더 빠르지만 대규모 입력 데이터에서는 병합형 정렬 알고리즘이 훨씬 더 빠르다