자료구조
· 약 22분
자료
- 현실세계로부터 관찰이나 측정을 통해서 수집된 사실이나 값
- 자료형태는 숫자로 표현되는 수치값이나 문자들로 구성되는 스트링을 포함
정보
- 어떤 상황에 대한 적절한 의사결정을 할 수 있게 하는 데이터의 유효한 해석이 나 상호 관계
- 자료가 처리되어 발생하는 결과
- 한시성
- 비소모성
- 공공성
- 독점성
자료구조
- 데이터를 효율적으로 사용할 수 있도록 자료의 특성에 따라 분류하여 구조를 만들어서 저장해 둔 것
- 단순 자료구조: integer, float, char 등 단일자료
- 선형 자료구조: 리스트, 스택, 큐
- 비선형 자료구조: 트리, 그래프
- 파일구조: 보조기억장치에 저장되는 대용량의 자료구조
알고리즘
- 유한한 단계를 통해 문제를 해결하기 위한 절차나 방법
- 입력, 출력, 명확성, 정확성, 유한성, 효율성, 일반성
순서도
- 사다리꼴 입출력
- 타원 터미널
- 마름모 비교, 판단
- 육각형 준비
추상
- 자세한 정보는 감추고 사용자가 자료를 사용하는 데 필요한 정보만 인터페이스를 통해 외부로 노출하는 것
프로시져
- 추상화 제공
- 재사용 가능
- 여러 프로그래머가 같은 문제를 해결할 수 있게 도와줌
- 구조 파악이 쉽다
프로시져 간 자료 전달 방법
- Call By Value: 값에 의한 호출, 프로시저를 호출하기 전에 실인수의 값을 계산하고 값을 호출시에 대응되는 국소적 변수인 가인수에 대입함으로써 전달하는 방식
- Call By Reference: 참조에 의한 호출, 주소와 포인터 등 실인수를 참조하기 위한 정보가 가인수에 전달되어 동일한 데이터를 참조하게 되어 호출된 프로시저에서 참조하는 값이 변경되면 실인수의 값도 동일하게 변경된다.
재귀
- 함수가 직접 자신을 호출하는 방식
공간 복잡도
- Space Complexity, 프로그램을 실행시켜 완료하는 데 필요로 하는 공간의 양
고정 공간
프로그램 입출력의 횟수나 크기와 관계없는 공간 요구
가변 공간
- 특정 인스턴스에 의존하는 크기를 가진 구조화 변수들이 필요로 하는 공간
시간 복잡도
- 프로그램의 기능을 수행하기 위해 프로그램이 취한 단계수로 표현하는 것
빅오
- f(n) = O(g(n))은 모든 n, n >= n0에 대해
f(n) <= cg(n)
인 조건을 만족하는 두 양의 정수 c와 n0이 존재하기만 하면 f(n) = O(g(n))이다.