IT&컴퓨터공학/자료구조&알고리즘

[01]자료구조&알고리즘에 대해서

yan_z 2019. 1. 31. 13:59



"프로그램이란 데이터를 표현하고, 그렇게 표현된 데이터를 처리하는 것이다."

  • 자료구조란 ?


데이터를 표현하고 저장하는 역할은 자료구조가 한다. 

ex) 정수를 저장하기 위해서 int 형 변수를 선언한다. / 배열을 선언해서 다양한 정보를 저장한다.


즉, 자료구조는 데이터를 저장하는 도구이다.


  • 자료구조의 분류

 선형구조

리스트, 스택, 큐

 비선형구조

트리, 그래프 

파일구조 

순차파일, 색인파일, 직접파일 

 단순구조

정수, 실수, 문자, 문자열 


선형구조(linear) vs 비선형구조


선형구조 : 데이터를 일렬로 저장. 상대적으로 쉽다.

비선형구조: 데이터를 나란히 저장하지 않음. 어렵다!


  • 알고리즘이란 ?

데이터를 처리하는 역할은 알고리즘이 한다.
ex) int arr[5] = {1,10,5,3,4}  에서 최솟값을 찾아라.

min = arr[0];
for(int i=0;i<5;i++){
if(arr[i]<min) min=arr[i];
}

위의 반복문은 배열에 저장된 모든 값 중 인덱스 값을 사용하여 최솟값을 구하는 알고리즘이다.
위의 자료구조가 배열이였기 때문에 인덱스값을 사용하는 알고리즘을 사용할 수 있었다.

따라서 알고리즘은 자료구조에 의존적이다.