본문 바로가기
이론/자료구조

자료구조 - 배열(Array)

by 퇴근후개발 2024. 3. 31.
반응형

 

배열(Array) 이란?

 

 

배열은 프로그래밍에서 데이터를 구조화하고 관리하는 데 중요한 도구입니다. 이는 동일한 유형의 데이터 요소들이 순서대로 저장되는 구조를 가지고 있습니다. 각 요소는 배열 내의 고유한 위치를 가리키는 인덱스를 통해 접근할 수 있습니다. C#에서 배열은 데이터 유형과 크기가 고정된 메모리 블록으로 구성되어 있으며, 각 요소는 해당 데이터 유형의 값을 포함하고 있습니다.

배열은 프로그래밍에서 매우 널리 사용되며, 데이터를 효율적으로 저장하고 접근할 수 있는 강력한 도구로서 기능합니다. 이는 데이터를 순차적으로 저장하여 연속적인 메모리 공간을 활용함으로써 빠른 접근 및 처리를 가능케 합니다. 배열은 데이터의 집합을 간편하게 관리할 수 있도록 도와주며, 여러 가지 알고리즘 및 자료구조의 기반 요소로 활용됩니다.

 

배열 코드 예시 (C#)


아래 코드는 C#에서 배열 활용의 예시입니다.

using System;

class Program
{
    static void Main(string[] args)
    {
        // 배열 선언 및 초기화
        int[] numbers = new int[5] { 10, 20, 30, 40, 50 };

        // 배열 요소 출력 (원본)
        Console.WriteLine("배열 요소 (원본):");
        PrintArray(numbers);

        // 배열의 요소 바꾸기
        int indexToReplace = 2;
        int newValue = 35;
        numbers[indexToReplace] = newValue;

        // 배열 요소 출력 (변경 후)
        Console.WriteLine("\n배열 요소 (변경 후):");
        PrintArray(numbers);
    }

    // 배열 요소 출력 메서드
    static void PrintArray(int[] arr)
    {
        for (int i = 0; i < arr.Length; i++)
        {
            Console.WriteLine($"인덱스 {i}: {arr[i]}");
        }
    }
}

 

위 코드를 실행한 결과는 다음과 같습니다.

 

배열 요소 (원본):
인덱스 0: 10
인덱스 1: 20
인덱스 2: 30
인덱스 3: 40
인덱스 4: 50

배열 요소 (변경 후):
인덱스 0: 10
인덱스 1: 20
인덱스 2: 35
인덱스 3: 40
인덱스 4: 50

 

 

 

배열의 장단점

 

- 장점

  •  배열은 인덱스를 통해 직접 요소에 접근할 수 있어 빠른 검색 및 수정이 가능합니다.
  •  메모리에 연속적으로 배치되므로 구현이 간단하고 효율적입니다.
  • 각 요소는 고정된 크기를 가지므로 메모리 할당이 일관되고 효율적입니다.

- 단점

  • 배열의 크기는 초기에 설정되며, 동적으로 크기를 조절할 수 없습니다.
  • 배열은 고정된 크기를 가지므로 실제 필요한 공간보다 큰 크기로 할당될 수 있어 메모리를 낭비할 수 있습니다.

 

배열 사용 사례

 

  • 데이터 정렬 및 검색: 배열은 데이터를 연속적으로 저장하므로 검색 및 정렬 알고리즘에 유용합니다.
  • 행렬 연산: 2차원 배열을 사용하여 행렬 연산을 수행할 수 있습니다.
  • 게임 프로그래밍: 게임에서 많이 사용되는 맵 데이터나 캐릭터 목록 등을 배열로 관리할 수 있습니다.

 

추가적으로 C#에서는 다차원 배열을 사용하여 행렬이나 다차원 데이터를 효율적으로 표현할 수 있습니다. 또한, LINQ(Language Integrated Query)을 사용하여 배열을 쉽게 조작할 수 있는 다양한 메서드가 있습니다.

 

배열은 C# 프로그래밍에서 중요한 데이터 구조로, 효율적인 데이터 관리와 처리를 위해 자주 사용됩니다. 이를 통해 빠른 알고리즘 개발과 효율적인 메모리 관리를 할 수 있습니다. 그러나 배열의 크기가 고정되어 있고 메모리를 낭비할 수 있는 단점이 있으므로, 상황에 따라 다른 데이터 구조를 고려해야 합니다.

 

 

 

 

반응형

'이론 > 자료구조' 카테고리의 다른 글

자료구조 - 연결 리스트(Linked List)  (0) 2024.04.01
자료구조 - 큐(Queue)  (0) 2024.03.26
자료구조 - 스택(Stack)  (0) 2024.03.24