200===Dev Language/DS And Algorithm

자료구조 알고리즘 (배열 연산)

블로글러 2020. 11. 24. 09:43

 

알고리즘과 자료구조의 기본 개념을 설명하고, 배열의 특징과 배열에서의 연산(읽기, 검색, 삽입, 삭제)에 대해 설명합니다.


큰 그림

알고리즘과 자료구조는 컴퓨터 과학에서 중요한 개념입니다. 알고리즘은 문제를 해결하기 위한 단계적 절차이고, 자료구조는 데이터를 효율적으로 관리하기 위한 구조입니다.

핵심 개념

  • 알고리즘: 연산을 풀어나가는 절차
  • 자료구조: 목적에 맞게 데이터를 논리적으로 정리한 구조
  • 배열: 인덱스를 통해 접근할 수 있는 데이터의 집합

세부 설명

배열의 특징

  • 인덱스: 배열에서 데이터가 있는 위치를 가리키며, 0부터 시작합니다.
  • 연산 속도: 배열에서의 연산은 단계 수로 측정됩니다.

배열에서의 연산

A. 읽기

  • 특정 인덱스에 있는 값 확인: 컴퓨터 메모리 내의 주소를 통해 인덱스 위치의 값을 읽습니다.
    • 컴퓨터가 인덱스 3의 값을 읽으라는 명령을 받으면:
      1. 배열의 인덱스는 0부터 시작하므로 메모리 주소를 찾습니다.
      2. 인덱스 3은 첫 번째 위치에서 세 번째 슬롯 뒤에 있습니다.
      3. 따라서 현재 0 위치의 메모리 주소에 3을 더해 해당 값을 찾습니다.

B. 검색

  • 배열에서 특정 값을 찾기 위해 각 인덱스를 확인합니다.
    • 예를 들어, 배열 3을 찾으려면 0에서 시작해 1, 2, 3 순으로 탐색합니다.

C. 삽입

  • 배열에 데이터를 삽입하는 방법:
    1. 맨 끝에 추가: 메모리 주소를 계산해 한 단계만 필요합니다.
    2. 처음 또는 중간에 삽입: 삽입할 공간을 만들기 위해 데이터 전체를 이동합니다.
    3. 최악의 시나리오: 원소 N개가 있는 배열에 삽입 시 N+1 단계가 필요합니다.

D. 삭제

  • 배열에서 데이터를 삭제하는 방법:
    1. 중간에서 삭제: 비어있는 셀이 발생하므로, 오른쪽의 데이터를 모두 왼쪽으로 이동시켜야 합니다.
    2. 최대 단계: N 단계가 필요합니다.

집합

  • 중복값 허용 안함: 집합에서는 중복값을 허용하지 않습니다.
  • CRUD 연산: 집합에서 값을 생성(C), 읽기(R), 업데이트(U), 삭제(D)할 때 중복 여부를 확인해야 합니다.
    • 예를 들어, 데이터가 0-5로 되어 있는 경우, 각 요소를 탐색해 중복 값을 확인한 후 CRuD 연산을 수행합니다.
    • 최악의 경우 총 2N+1 단계가 필요합니다.

결론 및 요약

알고리즘은 문제를 해결하기 위한 절차를 의미하며, 자료구조는 데이터를 효율적으로 정리하는 구조입니다. 배열은 인덱스를 통해 데이터를 쉽게 접근할 수 있으며, 읽기, 검색, 삽입, 삭제 등의 연산이 가능합니다. 특히, 집합은 중복을 허용하지 않아, 중복 여부를 확인하는 과정이 필요합니다.

이해도 테스트

이해를 돕기 위해 몇 가지 질문을 드리겠습니다:

  1. 배열의 인덱스는 몇부터 시작하나요?
  2. 배열에서 중간에 데이터를 삽입하려면 어떤 과정이 필요할까요?
  3. 집합에서 중복 여부를 확인하는 이유는 무엇인가요?
728x90

'200===Dev Language > DS And Algorithm' 카테고리의 다른 글

Merge Sort Introduced  (0) 2024.05.27
Merge Sort Introduced  (0) 2024.05.27
Insertion Sort Introduced  (0) 2024.05.27
Bellman-Ford Algorithm  (0) 2024.05.27
Dijkstra's Algorithm Introduced  (0) 2024.05.27