ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 2021-07-02 알고리즘 분석과 차수
    알고리즘관련/공부하기 2021. 7. 2. 22:55

    ■ 알고리즘의 분석

       □ 정확성 분석: 모든 입력 사례에 대해서 정확한 해답을 찾는다는 것을 증명

       □ 효율성 분석: 입력 크기가 커지는 정도에 따라 성능의 변화량을 증명

            - 시간 복잡도: 시간을 기준으로 알고리즘의 효율성 분석

            - 공간 복잡도: 공간을 기준으로 알고리즘의 효율성 분석

     

    ■ 알고리즘의 성능 분석

       □ 퍼포먼스 측정: 실행 시간을 직접 측정하거나 실행 명령의 숫자 세기

            - 컴퓨터의 성능이나 프로그래밍 언어에 따라 달라짐

       □ 복잡도 분석: 컴퓨터나 프로그래밍 언어와 무관하게 성능 분석

            - 입력 크기에 따른 단위 연산의 실행 횟수 세기

     

    ■ 복잡도 분석

       □ 입력 크기: 문제가 가진 파라미터, 즉, 입력 사례의 크기

       □ 단위 연산: 알고리즘 실행의 기본이 되는 명령어들의 집합

     

    ■ 알고리즘의 시간 비교

       □ 시간 복잡도: 입력크기(n)에 대한 단위 연산 횟수의 함수 f(n)

       □ 시간 복잡도가 f1(n) = n인 알고리즘과 f2(n) = n^2인 알고리즘

       □ 만약 단위 연산의 실행시간이 f1은 1000t, f2는 t라면?

           - f1 알고리즘 전체 실행 시간: n x 1000t

           - f2 알고리즘 전체 실행 시간:n^2 x t

           - n>1000 일때 f1이 f2보다 궁극적으로 더 빠르다고 할 수 있다.

     

    ■ 차수(Order): 알고리즘의 궁극적인 성능 분류

       □ 시간 복잡도 함수의 차수로 알고리즘의 성능을 분류할 수 있다.

       □ 모든 n차 시간 알고리즘은 궁극적으로 n+1차 시간 알고리즘보다 빠르다.(낮은 차수의 항들은 버릴 수 있음)

       □ 상수시간, 로그시간, 선형시간, 선형로그시간, 2차시간, 3차시간, 지수시간, 팩토리얼 시간

       □ 점근적 표기법:

           - Big O(복잡도 함수의 점근적 상한)

           - 오메가(복잡도 함수의 점근적 하한)

           - 세타 ( Big O + 오메가)

    '알고리즘관련 > 공부하기' 카테고리의 다른 글

    20210811 DFS  (0) 2021.08.11
    2021080  (0) 2021.08.09
    Python 2차원 리스트(배열) 초기화  (0) 2021.08.01
    리스트 컴프리핸션(list comprehension)을 이용한 리스트 만들기  (0) 2021.07.27
    2021-07-01  (0) 2021.07.01
Designed by Tistory.