ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 자료구조란? (알고리즘이란?, 프로그램이란?)
    컴퓨터 일반 2019. 11. 4. 22:18
    반응형

    자료구조란?

     

       자료구조란 현실 세계에서 생성되는 방대한 양의

      정보들을 어떻게 효율적으로 정리 하기 위해 만들어 진 것 입니다.  

      그러나 우리는 프로그래머 이므로 컴퓨터에 대해 알아야 하며,

      컴퓨터의 자료구조를 접목시켜 데이터를 효율적으로 정리하고

      활용하는 프로그래밍을 해야합니다.

     

       곧 프로그래밍의 자료구조란, 사람들이

      사물을 편리하고 효율적으로 사용하기 위해 정리하는 것과 

      마찬가지로 컴퓨터에서도 자료들을 정리하고 조직화 하는 여러

      가지 구조들을 일컫는 말입니다.

     

     

     

    자료구조의 분류

     

       - 단순 자료 구조  

          정수나 실수, 문자와 같이 대부분의 프로그래밍 언어에서 기본적으로 제공함.

     

       - 복합 자료 구조

          여러 개의 자료들을 모은 창고와 같습니다. 복합 자료구조는 원하는 자료를 얻기가 복잡하여 

          두가지 접근 방법을 가짐. 직접 접근, 순서 접근 또한, 창고의 형태에 따라 선형 구조와 비선형

          구조로 나눕니다. 이 형태는 직접 접근과 순서 접근으로 모두 구현이 가능 합니다.

             

     

     

    선형 자료구조(Linear data structure)

       선형 자료 구조는 기본적인 자료들이 순서적으로 나열 되는 자료구조형태 이다.

       (예로 스택, 큐, 덱 리스트등이 있다.)

     

    비선형 자료구조(Non-linear data structure)

        자료들이 보다 복잡한 연결 관계를 갖는 자료구조이다.

        (예로 트리, 이진 탐색, AVL트리, 우선순위 큐, 가중치 그래프의 신자트리나 최단 경로 등 이 있다.)

     

        (위에 내용은 나중에 포스팅에서 다루겠다.)

     

    자료구조의 활용

       자료구조의 가장 대표적인 응용이 정렬과 탐색이다. 

       정렬은 주어진 자료들을 어떤 기준을 바탕으로 순서대로 나열하는 것으로 배열이나 리스트에서

       내가 원하는 값을 추출 할때 이런 정렬 자료구조(알고리즘)을 활용하기도 합니다.

       이런 자료구조의 응용을 할줄 알고 자신의 것으로 만들어야 알고리즘과 프로그래밍이 수월하게

       됩니다.

     

    알고리즘(Algorithm)이란?

       어떤 문제를 해결할 때 내가 구조를 잡아 두면 해결하기가 쉽다. 문서를 정리 할때 3개의 

       보관함 이있다면, 첫번째 보관함에 글로 된 문서 , 두번째 보관함에 동영상, 세번째 보관함에 

       사진을 두었다고 해보자. 내가 사진을 찾을 때는 세번째 보관함에 글을 찾을 때는 첫번째 보관함에서

       찾으면 된다.

         위에 내용은 이런 일상생활을 구조화 한다고 하고 이런 구조화 한 것을 나타내는것이 structure이다

       structure를 잘 활용하여 최단시간이나 어떤 것을 효율적으로 해결하게 만드는 것을 알고리즘이라고 한다.

       즉, 알고리즘이란 어떤 문제를 해결하기 위한 절차, 방법, 명령어들의 모음이라고 할 수 있다.

     

    프로그램(Program)이란??

       프로그램은 데이터를 처리하고 있고, 이들 자료는 자료구조를 사용하여 표현되고 저장된다.

      또한 주어진 문제를 처리하는 절차, 앞서말한 알고리즘을 하지고 데이터가 처리된다.

      곧 프로그램이라함은, 데이터를 처리 저장하는 자료구조와 이런 자료구조를 활용하여 데이터를 

      자유자재로 활용할 수 있는 절차, 방법 등의 집합이라고 할 수 있다.

     

     

      

     

      위에 내용을 요약하면 

     

      자료구조 = 데이터, 데이터 저장, 데이터 처리

      알고리즘 = 데이터 처리하는 방법, 데이터 활용방법, 절차, 등

      프로그램 = 자료구조 + 알고리즘

     

     

     

     

     

     

     

     

     

     

    반응형

    댓글

Designed by Tistory.