-
자료구조 최종정리 : (1) 빅오표기관련..@ 16. 1 ~ 17. 1/자료구조 2014. 9. 10. 13:50
1. 연산의 빈도를 찾거나..(일일이 n에 따른 더하기 대입(n이 직접영향받는것이 아니라 n에 영향을 받아 계산되는것 포함)..등등 계산이 몇번되는가..)
예)
test(n)
{
i=0; 최초 1번
sum=0; 최초 2번
for(;i<=n;i++)
sum+=i;
return sum;
}
최초 1,2번 이후에 for문에서는..연산이..
n의 영향을 받아 총..
i<=n 1번, i++ 2번, sum+=i 3번 일어나므로..
3n + 2이다..
즉 n임..
2. 대표연산을 찾고...이 대표연산이 n에 따른 횟수를..찾는다.
예)
while(first<=last)
{
mid=(first+last)/2;
if(target==ar[mid])
{
return mid;
}
else
{
}
}
라면..여기서 대표하는 연산은 ==이것..왜냐면..==이 빠르면 빠를 수록 연산은 빨리 끝나니까..
1. 처음에 데이터의 수가 n개일때의 탐색과정에서 1회의 비교연산 진행
2. 데이터의 수를 반으로 줄여서 그 수가 n/2일 떄의 탐색과정에서 1회 비교연산 진행
3. 데이터의 수를 반으로 줄여서 그 수가 n/4일 때의 탐색과정에서 1회 비교연산 진행
.
.
n이 얼마인지 결정되지 않았으니 이 사이에 도대체 몇 번의 비교연산이 진행되는지 알 수가 없다..!
끝. 데이터의 수를 반으로 줄여서 그 수가 1개일 때의 탐색과정에서 1회의 비교연산 진행(마지막 연산이다.)
만약 n이 8이라면..
8이 1이 되기까지 2로 나누는 과정을 총 3회 거쳐야한다..즉..정리하면
n=log2n
1. 가장 큰 영향력(항)을 주는 것을(N을) 찾고..
2. 계수를 생략하면 된다.
3n + 3의 경우..
1 -> 3n
2 -> n
최종 n..
비교는
1 > logn >n >nlogn >n^2 >n^3 >2^n >n!
이런 순서다..
해당내용은 윤성우의 열혈 자료구조와 열혈강의 자료구조를 참고했습니다.
'@ 16. 1 ~ 17. 1 > 자료구조' 카테고리의 다른 글
자료구조 최종정리 : 연결리스트 덱 (0) 2014.09.17 자료구조 최종정리 : 리스트(단일, 원형) (0) 2014.09.10 AVL 이진트리(개념설명) (0) 2014.02.18 힙 (0) 2014.01.28 단순한 정렬 알고리즘(버블, 선택, 삽입) (0) 2014.01.27