독학사 컴퓨터과학과

자료구조(1) - 자료구조와 알고리즘

고유빙글 2021. 4. 15. 01:32

● 자료와 정보

 - 자료 : 현실세계로 부터 관찰이나 측정을 통해 수집된 사실이나 값.

           숫자로 표현되는 수치, 문자로 구성되는 (String)을 포함

 

 - 정보 : 어떤 상황에 대한 적절한 의사결정을 할 수 있게 하는 데이터의 유효한 해석, 상호관계.

            자료가 의도된 프로그램에 따라 처리되어 발생하는 결과

 

● 자료구조 

 - 자료구조 : 자료 사이에 존재하는 관계를 개념적으로 정의한 것.
                : 자료를 효율적으로 이용할 수 있도록 자료의 특성에 따라 분류, 구성 , 저장, 처리하는 모든 작업

 

 - 선형구조 : 연속적인 기억공간에 데이터를 저장하는 자료구조.

                : 배열, 스택, 큐, 데크, 연결리스트 ... etc

 -  비선형구조 : 기억 공간내의 위치와 별개로 독릭하여 저장하는 구조

                   : 트리, 그래프 ... etc

 

 - 데이터의 양

   데이터를 사용하는 방법, 횟수

   데이터의 정적, 동적 특성

   데이터 구조에 의해 요구되는 기억장치의 양

   등을 고려해야 한다.

 

  알고리즘

 - 알고리즘 : 특정한 일을 수행하는 명령어드르이 유한집합

               : 주어진 문제를 해결하기위한 수행과정을 논리적으로 표현

 

 - 요구조건 :  외부로부터 입력 0개 이상

               : 출력이 최소 1개 이상 ( 최소 1개 이상이어야 True / False 검증 가능 )

               : 명확성 / 명확하고 모호하지 않아야 함

               : 유한성 / 어떤 경우에도 한정된 수의 단계 이후에는 종료해야 한다. 

               : 유효성 / 알고리즘을 구성하는 명령문들은 하드웨어에서 실행가능해야 한다.

 

 - 알고리즘을 선정하는 조건

               : 특정 언어의 특성을 고려하지 않고, 작성할 수 있어야 한다.

               : 문제를 해결할때 기존 기법을 사용하고 의존할 수 있어야 한다.

 

 - 알고리즘을 기술하는 방법

               : 자연어 사용, 흐름도 사용, 의사코드(pseudo-code) 사용

               : 자연어를 이용한 방법은 의미전달이 모호해질 우려가 있음

               : 흐름도를 이용한 방법은 직관적이고 이해하기 쉬우나, 복잡한 알고리즘의 표현이 어려움

               : 의사코드로 표현된 알고리즘은 자연어보다는 더 구조적인 표현이 가능, 프로그래밍 언어로의 변환이 용이

 

 의사코드

 : 주어진 리스트에서 가장 큰 값을 찾는 알고리즘이다.

 procedure max ( x : integers, a1, a2, ..., an : distinct integers)

v : a1

for i =2 to n

    if ai > v then b = ai

return v