IdoCleanCode
article thumbnail
반응형

데이터 구조

데이터 구조 - 배열
데이터 구조 - 배열의 기본 이해

 

배열의 정의

배열은 동일한 데이터 타입을 가진 변수들의 집합으로, 연속적으로 메모리 공간에 할당됩니다. 각 변수들은 인덱스를 통해 접근 할수 있으며, 이 인덱스는 배열의 시작점으로부터의 상대적인 위치를 나태냅니다.

배열의 정의

 

배열의 필요성

  1. 대량의 데이터 처리
    배열은 많은 양의 동일한 데이터 타입을 가진 데이터를 효과적으로 처리할 수 있습니다.

  2. 메모리 효율성
    배열은 온속적인 메모리 공간에 할당되므로, 변수들의 메모리 주소를 계산하고 접근하는데 효율적입니다.

  3. 코드의 간결성
    배열을 사용하면 반복문등과 결합하여 코드를 간결하고, 명료하게 작성할 수 있습니다.

  4. 알고리즘 구현
    많은 알고리즘과 자료구조는 배열을 기반으로 구현합니다. 정렬 알고리즘, 검색 알고리즘, 그래프 알고리즘 등은 모두 배열을 사용합니다.

 

배열의 특성과 구조

  1. 동질성
    배열은 같은 타입의 데이터를 저장합니다. 즉, 모든 요소가 동일한 데이터 타입을 가져야 합니다. 


  2. 고정 길이
    배열은 한번 생성하면 그 크기를 변경할 수 없습니다. 따라서 배열을 생성할 때는 필요한 요소의 수를 미리 알아야 합니다. 이러한 특성은 제약 사항이 될 수 있지만, 메모리 관리에서는 효율적으로 할 수 있습니다.


  3. 인덱스를 통한 접근
    인덱스를 통해 배열 내의 특정 위치에 빠르게 접근 할 수 있습니다.


  4. 연속적인 메모리 할당
    배열의 모든 요소는 메모리 상에서 연속적으로 할당됩니다. 이를 통해 빠른 데이터 접근을 가능합니다.

  5. 다차원 배열
    배열은 1차원 뿐만 아니라 2차원, 3차원등 다차원 배열로 구성됩니다.


배열의 메모리 할당 방식

배열은 메모리에 동일한 크기의 요소를 연속적으로 저장하는 방식으로, 이를 통해 빠른 접근 속도를 제공합니다.

 

배열의 요소에 접근하는 방법은 배열의 시작 주소와 요소의 인덱스, 그리고 배열의 각 요소가 차지하는 메모리 크기를 이용하여 계산할 수 잇습니다.

배열 요소의 주소 = 배열 시작 주소 + (인덱스 * 요소의 크기)

예를 들어 int 형 배열 시작 주소가 1000이고, 각 요소가 4바이트차지하고, 배열의 2번째요소(인덱스 1)의 주소는 다음과 같이 계산합니다

배열 요소의 주소 = 1000 + (1 * 4) = 1004

배열의 2번째요소는 메모리 주소 1004부터 시작합니다.

 

배열의 메모리 할당 방식
배열의 메모리 할당 방식

 

이런 방식으로 배열의 각 요소에 빠르게 접근 할 수 있습니다.

 

참고 자료
https://roadmap.sh/computer-science

https://www.geeksforgeeks.org/data-structures/?ref=shm_outind

반응형
profile

IdoCleanCode

@IdoCleanCode

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!