본문 바로가기
컴퓨터 공학/Algorithm

자료구조와 알고리즘 개념 쉽게 이해하기

by hahehohoo 2020. 7. 3.
반응형

자료구조와 알고리즘은 무엇인가

 

'알고리즘자료구조에 의존적이다.'라는 말을 들어본 적이 있을 것입니다. 

도대체 자료구조와 알고리즘이 뭐길래 저런 관계가 성립이 되는 걸까요?

 

개념을 파악하기 위해 프로그램의 간단한 정의를 봅시다. 

 

프로그램은 크게 두가지를 합니다. 

 

1) 데이터의 표현 (자료구조)

2) 데이터의 처리 (알고리즘)


1) 데이터 표현에는 데이터를 저장하는 일을 포함됩니다.

여러분은 이미 데이터를 저장해본 적이 있습니다.

 

정수를 저장하기 위해 int형 변수를 선언하고,

다양한 정보를 활용하기 위해 배열을 사용했죠.

 

넓은 의미로 int형 변수와 배열은 자료구조의 일종입니다.

 

2) 그렇게 표현된 데이터(int형 변수나 배열)를 가지고 문제를 해결하는 것이 알고리즘입니다. 

 

 


 

간단한 코드를 보겠습니다. 

/* 자료구조: 데이터 표현 */
int arr[3] = {1, 2, 3};

/* 알고리즘: 데이터 처리 */
for(i = 0; i < 3; i++) //i, sum변수는 선언되었다고 가정
	sum += arr[i];

 

위의 반복문은 '배열에 저장된 모든 값의 합을 구하는 알고리즘'이라고 할 수 있습니다. 

 

 


 

만약 배열이 아니라 정수형 변수 3개의 합을 구해야 한다면 위의 반복문을 그대로 사용하면 될까요? 

 

아니겠죠. 데이터가 정수형 변수라면 이야기가 달라지죠.

다른 방법으로 처리해야 하니까요.

 

즉, 알고리즘(데이터 처리)자료구조(데이터 표현)에 의존적입니다. 

 

 

------------------------------

알고리즘 개념 모아보기 

------------------------------

 

 

반응형


댓글