반응형
선형 자료구조
: 데이터 요소가 순차적(Sequential)으로 배열되는 자료구조, 단일 레벨로 구성되어 한 번에 탐색 가능하고 구현하기 쉬움.
: 배열, 스택, 큐, 연결 리스트 등이 해당됨.
배열
: 값 또는 변수 엘리먼트의 집합으로 구성된 구조. 하나 이상의 인덱스 또는 키로 식별됨.
: 고정된 크기 만큼의 연속된 메모리 할당
: 자료구조 중 메모리 공간 기반의 연속 방식의 가장 기본이 되는 자료형
- 자료구조는 크게 메모리 공간 기반의 연속 방식(contiguous) / 포인터 기반의 연결 방식(link)으로 나뉜다.
- 포인터 기반의 연결 방식의 기본 -> 연결 리스트
: 어느 위치에나 O(1)에 조회 가능
동적 배열
: 실제 데이터의 전체 크기를 가느맣기 힘들 때 크기를 지정하지 않고 자동으로 리사이징
: 파이썬의 리스트가 동적 배열 자료형에 해당
: 초깃값을 작게 잡아 배열을 생성하고, 데이터가 추가되면서 꽉 채워지면 늘려주고 모두 복사하는 원리.
- 더블링: 대개 2배씩 늘려주어 더블링이라고 칭함. 모든 언어가 항상 그런 것은 아님.
: 배열과 동일하게 O(1)에 조회 가능하지만, 더블링이 필요할 때 O(n)의 비용이 필요. (최악의 경우)
: 그러나 분할 상환 분석에 다른 입력 시간은 여전히 O(1).
반응형
'Algorithm > 알고리즘 이론' 카테고리의 다른 글
[Python] 소수구하기, 에라토스테네스의 체 (0) | 2021.07.18 |
---|---|
[탐욕 알고리즘] 개념과 응용 문제(거스름돈 문제, 프로그래머스 체육복) (0) | 2020.12.19 |