[자료구조] 배열(Array)란?

최지수·2024년 7월 6일
post-thumbnail

📘배열(Array)

배열은 가장 기본적이고 중요한 자료구조 중 하나이다. 배열은 일정한 크기의 메모리 공간에 같은 타입의 데이터 요소들을 연속적으로 저장하는 구조이다. 배열의 각 요소는 인덱스(index)를 통해 접근할 수 있다.


📌배열의 특징

  1. 고정된 크기: 배열은 생성될 때 크기가 정해지며, 이후에는 크기를 변경할 수 없다.
  2. 연속적인 메모리 공간: 배열의 요소들은 메모리 상에서 연속적으로 배치된다. 즉, 배열의 첫 번째 요소가 저장된 위치를 기준으로 각 요소가 일정한 간격을 두고 저장된다.
  3. 같은 타입의 요소들: 배열의 모든 요소는 같은 데이터 타입을 가져야 한다. 예를 들어, 정수 배열에는 모두 정수형 데이터만 저장할 수 있다.
  4. 인덱스를 통한 접근: 배열의 요소들은 인덱스를 사용하여 접근할 수 있다. 인덱스는 0부터 시작하며, 배열의 크기 -1까지의 값을 가진다. 예를 들어, 크기가 5인 배열은 인덱스 0에서 4까지의 요소를 가진다.

📌배열의 장점

  1. 빠른 접근 속도: 배열은 인덱스를 사용하여 임의의 요소에 빠르게 접근 할 수 있다. 이는 배열의 특정 요소를 O(1) 시간 복잡도로 접근할 수 있다는 의미이다.
  2. 단순한 구현: 배열은 매우 단순한 자료구조로, 구현이 쉽고 직관적이다.

📌배열의 단점

  1. 고정된 크기: 배열의 크기가 고정되어 있어, 배열을 생성한 후에는 크기를 변경할 수 없다. 따라서 배열의 크기를 초과하는 데이터가 들어오면 새로운 배열을 만들어 데이터를 복사해야 한다.
  2. 비효율적인 삽입 및 삭제: 배열의 중간에 요소를 삽입하거나 삭제할 때는, 해당 위치 이후의 모든 요소를 이동시켜야 한다. 이는 O(n) 시간 복잡도가 소요된다.


📘배열 생성

✅Python

빈 배열 선언

  • 요소가 아무것도 없는 빈 배열 선언
arr = []

배열 생성

  • 크기가 5인 정수형 배열 생성
arr = [1,2,3,4,5]

배열 접근

  • 인덱스를 사용해 배열의 요소 접근
print(arr[0])  // 출력 => 1
print(arr[4])  // 출력 => 5

배열 요소 변경

  • 2번 인덱스 배열 요소를 10으로 변경
arr[2] = 10
print(arr)  // 출력=> [1,2,10,4,5]

배열 반복문

  • for문을 사용하여 배열의 모든 값을 출력
for i in range(len(arr)):
    print(arr[i])

2차원 배열

  • 2차원 배열 선언과 초기화
arr = [[1,2,3],[4,5,6],[7,8,9]]

2차원 배열 요소 접근

print(arr[0][1])  // 출력 => 2

✅Java

배열 선언

  • 배열의 타입과 크기 지정
int[] arr = new int[5];

배열 값 할당

  • 인덱스를 사용하여 해당 위치에 값 대입
arr[0] = 1;
arr[1] = 2;
arr[2] = 3;
arr[3] = 4;
arr[4] = 5;

배열 선언과 초기화

  • 배열 선언과 동시에 초기화
int[] arr = {1,2,3,4,5};

배열 접근

  • 인덱스를 사용해 배열의 요소 접근
System.out.println(arr[2]);  // 출력 => 3
System.out.println(arr[4]);  // 출력 => 5

배열 반복문

for문을 사용하여 배열의 모든 값을 출력

for (int i=0; i<arr.length; i++) {
    System.out.println(arr[i]);
}

2차원 배열 선언과 초기화

int[][] arr = {{1,2,3},{4,5,6},{7,8,9}};

2차원 배열 요소 접근

System.out.println(arr[0][1]);  출력 => 2
profile
오늘보다 내일 더 성장하는 개발자🌱

0개의 댓글