자료구조(data structure)란 프로그램에서 자료들을 정리하는 구조를 의미한다. 적절하게 설계된 자료구조는 프로그램이 보다 효율적으로 수행될 수 있게 한다.
프로그램 = 자료구조 + 알고리즘
자료구조가 프로그램에서 자료들을 구성하는 구조를 의미한다면 알고리즘은 이러한 구조를 바탕으로 문제를 해결해나가는 절차를 의미한다.
가장 큰 수를 찾아내는 프로그램을 작성한다 상황이라면 우리는 숫자라는 데이터들을 배열의 형태로 저장할 수 있을 것이다. 여기서 배열이 자료구조가 되는 것이다. 다음으로 가장 큰 수를 찾기 위해서 우리는 변수를 생성해 배열의 요소들을 순차적으로 비교하며 더 큰 값을 저장하도록 절차를 만들 수 있을 것이다. 이것이 알고리즘이 되는 것이다.
알고리즘의 조건
입력, 출력, 명백성, 유한성, 유효성
0개 이상의 입력과 1개 이상의 출력이 존재해야 하며 각 명령어는 명확해야 한다. 또 반드시 종료되어야 하고 각 명령어는 컴퓨터로 실행 가능한 연산이어야 한다.
알고리즘을 기술하는 방법 4가지
알고리즘 간단한 예시
추상 자료형(ADT)
이거 나중에 또 추가해야지...