행우선 열우선 배열
2022. 9. 6. 06:00ㆍStudy/Programming
반응형
배열은 같은 데이터형의 데이터들을 담을 수 있는 공간이다.
스택의 배열변수는 힙의 공간을 가리킨다.
배열이 메모리에 저장되는 방법에는 행우선과 열우선이 있다.
1차원 배열에서는 행우선과 열우선에 관계없이 동일한 방법으로 저장된다.
2차원 배열에서는 행우선과 열우선이 저장되는 방법이 다르다.
먼저 행우선은 행단위로 저장된다.
3 x 4 배열 A={11,12,13,14,21,22,23,24,31,32,33,34}은 메모리에 다음과 같이 저장된다.
1. 첫번째 행 {11,12,13,14} 저장
2. 두번째 행 {21,22,23,24} 저장
3. 세번째 행 {31,32,33,34} 저장
11 | 12 | 13 | 14 |
21 | 22 | 23 | 24 |
31 | 32 | 33 | 34 |
열우선은 열단위로 저장된다.
3 x 4 배열 B={11,12,13,14,21,22,23,24,31,32,33,34}은 메모리에 다음과 같이 저장된다.
1. 첫번째 열 {11,21,31} 저장
2. 두번째 열 {12,22,32} 저장
3. 세번째 열 {13,23,33} 저장
4. 네번째 열 {14,24,34} 저장
인덱스로 메모리 주소를 찾는 식을 계산하면 다음과 같다.
- m x n 배열 C의 인덱스 i,j의 주소
- 배열 C의 첫번째 원소 주소 c
- 배열 C의 원소의 크기 d
- 행우선 : c + i*n*d + j*d
- 열우선 : c + j*m*d + i*d
반응형
'Study > Programming' 카테고리의 다른 글
1의 보수와 2의 보수 (0) | 2022.09.08 |
---|---|
큐, 이동큐, 원형큐의 차이변수들의 의미 (0) | 2022.09.07 |
개발자 로드맵이 필요하다(with JAVA) (0) | 2022.07.29 |
[파이썬] 맥북 m1(arm)에서 파이썬 문제 Fatal Python error: Illegal instruction (0) | 2022.05.02 |
객체지향 프로그래밍과 언어 (0) | 2021.03.15 |