컴퓨터공학/자료구조론

1-1. 자료구조와 알고리즘

멜데스 2015. 4. 18. 09:39
1. 자료와 정보

자료(Data)는 현실세계로부터 관찰이나 측정을 통해서 수집된 사실 혹은 값

자료형태는 숫자로 표현되는 수치값이나 문자들로 구성되는 스트링(string)을 포함


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

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


2. 자료구조

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

자료구조를 기억 공간 내에 실현 하는 방법

1. 기억 공간 내에 앞에서부터 차례로 데이터를 기억시키는 방법

2. 자료 사이의 관계가 기억 공간 내의 위치와 독립하여 포인터에 의한 접속으로 얻게 되는 방법


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

ex) 배열, 스택, 큐, 데크, 연결리스트

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

ex) 트리, 그래프


* 자료구조의 형태에 따른 분류

단순구조 : 정수, 실수, 문자, 문자열 등의 기본 자료형

선형구조 : 순서리스트, 연결리스트, 스택, 큐, 데크

비선형구조 : 트리, 그래프

파일구조 : 순차파일, 색인파일, 직접파일


주어진 데이터를 처리하는데 적절한 데이터 구조를 선택하기 위한 요인

1. 데이터의 양

2. 데이터를 사용하는 방법과 횟수

3. 데이터의 정적 또는 동적인 특성,

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


3. 알고리즘

알고리즘은 특정한 일을 수행하는 명령어들의 유한집합이며 주어진 문제를 해결하기 위한 수행과정을 논리적으로 표현한 것


입력 : 외부로부터의 자료 입력이 0개 이상 있어야 한다.

출력 : 최소 1가지 이상의 출력이 있어야 한다.

명확성 : 각 명령들은 명확하고 모호하지 않아야 한다.

유한성 : 알고리즘의 명령대로 수행하면 어떤 경우에도 한정된 수의 단계 뒤에는 반드시 종료해야 한다.

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


알고리즘을 선정하는 조건

1. 어떠한 특정 언어의 특성을 고려하지 않고 작성할 수 있어야 한다는 것

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