1장 자료구조와 알고리즘의 이해 요약

교재: 윤성우의 열혈 자료구조
nike air jordan 4
What?
자료구조는 데이터의 표현과 저장 방식

Why?
데이터의 효율적인 활용을 위해서다. 따라서 자료구조를 효과적으로 요리하려면 해당하는 자료구조에 맞는 적절한 알고리즘이 필요하게 된다. 위로부터 알고리즘은 자료구조에 의존적이라는 것을 알 수 있다.
ray ban sunglasses Korea
데이터의 효율을 어떻게 알아?
알고리즘의 성능을 분석하면 된다. 이 때 쓰는 척도로 시간복잡도(time complexity)와 공간복잡도(space complexity)가 있다. 그렇지만 주로 시간복잡도가 알고리즘을 측정하는 주된 척도가 된다는 점.

알고리즘의 시간복잡도를 구할 때는 주요한 (다른 연산들의 회수를 결정하는) 연산의 횟수를 센다. 이론 상 평균적인 연산회수를 적용하면 좋겠지만 쉬운 일이 아니다. 또한 입력 되는 데이터의 양이 급증하게 될 때 최악의 상황에서의 연산횟수가 미치는 영향이 크다. 그래서 보통 최악의 상황(worst case)를 측정하여 성능을 분석한다.
air jordan retro 12
알고리즘의 최악의 상황의 성능이 어떤 (얼마만큼 횟수가 증가하는지)경향성을 지니는지를 표기하는 방법으로 표적인 빅-오 표기법이 있다. 빅-오표기법은 입력 데이터의 크기(n)이 점차 커질 때(n>K), 알고리즘의 연산 횟수의 함수 f(n)의 변화 패턴의 상한선( f(n) < Cg(n) ) 을 나타내 준다. 대표적인 빅-오표기의 크기 비교는 아래와 같다.

O(1) < O(logn) < O(n) < O(nlogn) < O(n^2) < O(n^3) < O(2^n)cheap oakley sunglasses for sale

How?
지금부터 공부하게 될 구체적인 자료구조 들이지, 큰 범주로 선형구조의 리스트, 스택, 큐가 비선형구조로 트리와 그래프가 중요한 학습 콘텐츠다.