자료구조와 알고리즘

김동하·2023년 7월 17일

자료구조

목록 보기
1/9

자료구조와 알고리즘

  • 알고리즘의 경우 문제 해결의 결과이다.
  • 자료구조를 이용하여 또 다른 문제를 해결하기 위해서 자료구조에서 파생된 알고리즘이 실제 문제 해결에 영향을 미치면서, 문제 해결을 위한 알고리즘인지, 자료구조인지 명확하게 구분하기 힘들어졌다.

자료구조의 정의

  • 자료구조(Data Structure)는 영문 그대로 '데이터 구조'이다.
  • 두 데이터를 입력 받는 다는 것은 -> 두 데이터를 메모리에 저장한다 라고 볼 수 있다
  • 메모리에 저장하기 위해서는 0과 1로 변환할 수 있는 자료형이어야 하며,
  • 변환된 데이터를 어떻게 저장할지 결정해야 하는 것이 자료구조이다.
  • 자료구조란 한정된 메모리에서 처리에 필요한 데이터에 효율적으로 접근하기 위한 자료의 조직, 관리, 저장 방법

자료구조의 필요성

메모리 효율성

  • 자료구조는 제한된 메모리에 많은 데이터를 저장하기 위해 꼭 필요하다
  • 메모리를 효율적으로 사용하기 위해서는 데이터에 맞는 자료구조 선택이 아주 중요함

알고리즘 성능

  • 자료구조는 프로그램 성능에 직접적인 영향을 미친다. 알고리즘 뿐만아니라 데이터 연산을 위해 데이터를 가져오는 작업이 필요한데, 데이터를 어떻게 저장하는지에 따라 성능이 달라질 수 있음

데이터 관리

  • 연산하기 위해서도 찾아야 하지만, 메모리에 저장된 데이터를 수정하거나 삭제하기 위해서도 찾아야한다.

알고리즘의 정의

  • 알고리즘은 어떤 문제를 해결하기 위해 정해진 일련의 절차
    • 계산을 실행하기 위한 단계적 절차, 처리 과정의 순서, 프로그램 명령어의 집합 등으로 정의함

컴퓨터 알고리즘

  • 컴퓨터 알고리즘은 컴퓨터를 통하여 문제를 해결하고자 할 때 컴퓨터가 처리할 일 또는 명령어 순서라고 정의할 수 있음

  • 즉, 추상적으로 문제 해결 알고리즘을 표현하는 것이 아니라 컴퓨터가 수행할 수 있는 방식으로 표현하여 컴퓨터가 수행할 수 있도록 해야함

  • 컴퓨터 알고리즘은 자료구조를 기반으로 한 알고리즘과 문제 해결을 중심으로 한 알고리즘 두 분야로 발전 중

컴퓨터 알고리즘의 요건

입력/출력

  • 컴퓨터 알고리즘은 0개 이상의 외부 입력과 1개 이상의 출력이 필요

정확성

  • 컴퓨터 알고리즘이 갖추어야 하는 '정확성'은 주어진 입력에 대해 반드시 올바른 해답을 주어야 하는 요건

유한성

  • 컴퓨터 알고리즘이 갖추어야 하는 '유한성'은 유한 시간 내에 반드시 종료되어야 하는 요건이다.

수행성

  • 컴퓨터 알고리즘이 갖추어야 하는 '수행성'은 모든 명령은 컴퓨터에서 반드시 수행할 수 있어야 한다느 ㄴ요건이다.

자료구조와 알고리즘

  • 알고리즘을 컴퓨터로 수행할 때, 데이터를 메모리에 저장해야 하며, 이 때 자료구조가 필요하다.
  • 자료구조를 이용해서 데이터를 메모리에 저장할 때 특정 규칙을 포함해 저장할 수 있는데, 이러한 규칙을 알고리즘이라 부른다.
  • 자료구조에 해당하는 알고리즘은 데이터를 메모리에 저장하는 문제를 해결한 알고리즘이다.
  • 자료구조 알고리즘은 데이터의 효율적인 삽입, 삭제, 수정을 목적으로 만들어졌으며, 일반적인 문제를 해결하는 알고리즘으로도 사용되고 있음
  • 컴퓨터로 문제를 해결하고자 할 때 데이터와 알고리즘의 특징에 따라 자료구조를 중심으로 알고리즘을 설계할지, 문제 중심으로 알고리즘을 설계할지 잘 결정해야 한다.
  • 자료구조를 문제 해결에 잘 사용하기 위해서는 지금까지 연구되어 알려진 자료구조, 자료구조 알고리즘이 무엇인지 알아야 하며, 자료구조 알고리즘을 사용하는 방법을 익혀야 할 것이다.

1개의 댓글

comment-user-thumbnail
2023년 7월 18일

덕분에 좋은 정보 얻어갑니다, 감사합니다.

답글 달기