1. 배열의 정의
- 일정한 차례나 간격에 따라 벌여놓음(사전적 정의)
- '차례'와 관련된 기본적인 자료구조
- 인덱스와 원소값의 쌍으로 구성된 집합
- 원소들이 모두 같은 자료형과 같은 크기의 기억 공간을 가짐
- 인덱스와 주소값의 관계
2. 배열의 추상 자료형
- ADT Array
객체 : <Index, Element> 쌍들의 집합.
연산 : a, i, item, n인 모든 것에 대하여 다음과 같은 연산이ㅣ 정의(a는 0개 이상의 원소를 갖는 배열, item은 배열에 저장되는 원소, n은 배열의 최대 크기를 정의하는 정수 값)
- create, retrieve, store
3. 배열의 연산의 구현
4. 1차원 배열
- 한 줄짜리 배열, 하나의 인덱스로 구분
- A[i]는 배열의 첫번째 원소 A[0]이 저장된 주소인 a로부터 시작하여, A[0]부터 A[i-1]개까지 i개의 배열 A[]를 지나서 저장됨
- 따라서, A[]의 시작주소를 a라고 가정하면 , A[i]의 저장주소는 [a+i*k]가 됨
5. 배열의 확장
- 행렬의 배열 표현
- 행 우선 할당
- 열 우선 할당
- C언어에서의 2차원 배열 > 행 우선 순서 저장
6. 희소행렬의 개념
- 원소값이 0인 원소가 그렇지 않은 원소보다 상대적으로 많음
-희소행렬의 일반적 배열표현 > 메모리 낭비..
>> 메모리 낭비를 막고 효율성을 높이기 위해서 0인 원소는 저장하지 않고 0이 아닌 값만을 따로 모아서 저장하는 방법이 필요함
선행과목이 이산수학이랑 C 였나보다.. 둘다 안들었는데 흐흐
이제 슬슬 어려워지기 시작한다.
'프로그래밍 > TIL(Today I Learned)' 카테고리의 다른 글
3강 프로그래밍 언어의 구문 (0) | 2018.08.28 |
---|---|
2강 형식언어와 형식문법 (0) | 2018.08.23 |
2강 컴퓨터 명령 (0) | 2018.08.21 |
2강 프로그래밍 언어의 역사 및 설계기준 (0) | 2018.08.20 |
1강 컴파일러란? (0) | 2018.08.19 |