ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 자료구조 최종정리 : (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!

    이런 순서다..

     

    해당내용은 윤성우의 열혈 자료구조와 열혈강의 자료구조를 참고했습니다.

Designed by Tistory.