자료구조와 알고리즘

sanghoon·2020년 12월 5일
0

자료와 자료형(Data와 Data type)

Data는 처리의 대상이 되는 모든 것을 의미합니다. 화장실에 간 횟수, 일주일 동안의 등교 수와 같은 정수가 자료가 될 수도 있고, 키와 같은 소수(일반적으로 신장은 소수로 나타냅니다)도 자료가 될 수 있으며, 개발 언어로 구현한 특정 객체(object) 역시 자료가 될 수 있습니다. Data type은 이러한 자료와 그의 연산을 포괄하는 개념입니다.

Abstract Data Type(ADT, 추상자료형)

ADT는 위에서 정의한 Data type을 컴퓨터 언어로 나타낸 것을 의미합니다. 다만 실제 구현부는 들여다볼 수 없으며, 구현부를 모르더라도 사용법만 알면 data type을 사용할 수 있습니다. 이를 구현부와 독립적이라고도 말합니다. ADT의 개념은 C++, Java 등과 같은 언어에 많은 영향을 끼쳤습니다.

class ADT { // C++
private:
   //이곳과
protected:
   //이곳에 있는 선언부는 사용자가 몰라도 ADT를 사용할 수 있습니다.
    //구현부가 바뀌더라도 사용자는 이와 무관하게 사용할 수 있습니다.(정보은닉, 추상화)
};

자료구조(Data Structure)

자료구조는 말 그대로 자료(data)들이 구조(structure)를 이룬 것입니다. 스택, 큐, 트리, 리스트가 대표적인 예이며 각각의 구조는 다음과 같은 형태를 띄고 있습니다.

알고리즘(Algorithm)

자료구조가 자료들이 어떤 구조를 이루고 있는지를 말하는 것이라면, 알고리즘은 일을 처리하는 절차를 의미합니다. 알고리즘은 컴퓨터 언어에서 매우 중요합니다. 같은 일을 수행하는 프로그램이라도 어떠한 알고리즘으로 구현되었는지에 따라 1초도 안 걸릴 수도 있고, 100년이 걸릴 수도 있기 때문입니다. 일반적으로 알고리즘은 밑의 그림과 같이 도형으로 만든 흐름도(Flow chart)로 나타낼 수도 있고, 의사코드(pseudo code)로도 나타낼 수 있습니다.


사진 출처 : http://society.kisti.re.kr/sv/SV_svjscj03L.do?method=popup&jats=HOJBC0_2015_v19n5_1213

0개의 댓글