ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 기초
    알고리즘 2021. 3. 8. 18:28

    알고리즘

    주어진 문제에 대한 답을 찾는 단계적 절차 혹은 기법

    -> 프로그램에서 어떤 특정한 일을 수행하는 개별적인 모듈(module)과 유사

     

    알고리즘의 조건

    • finite(우한한): 끝이 있다
    • deterministic(결정로적인): 같은 입력(instance)에 대해서 항상 같은 출력(값)을 주어야 한다.
    • effective(효율적인): 빠른 시간에 적은 메모리를 사용하여 대답을 주어야 한다.

    추상화(ADT)

    구체화의 반대

    1) 데이터 객체의 구체적인 내용 신경X
    2) 데이터에 대한 연산 : 삽입, 삭제
    3) 구체적인 구현 신경

     

    예)

    같은 문제를 주어질 때, 구체화 관점과 추상화 관점

    구체화: 이번학기 최고 성적

    추상화: n개의 정수 중 최대값

     

    대표적 알고리즘 설계 기법

    • 분할정복(divide-and-conquer)
    • 동적프로그래밍(dynamic programming)
    • 탐욕적 기법(greedy algorithm)

    알고리즘 표현

    의사코드(pseudocode)로 표현

    1. 영어 혹은 한글 등으로 작성 가능

    2. 명확하고 간결하게 작성

    3. 일반적으로 입출력과 오류처리는 포함하지 않는다.

    4. 컴퓨터 지향적이야 한다.

    5. 적절한 데이터 구조에 대한 고려가 필요

    6. 프로그램으로의 구현을 염두에 두어야 함

    => 코딩에 적함한 의사코드 작성, 남들이 봤을 때, 이해가 되어야 한다.

     

    '알고리즘' 카테고리의 다른 글

    탐욕적 알고리즘  (0) 2021.05.10
    동적 프로그래밍  (0) 2021.04.28
    검색  (0) 2021.04.05
    정렬  (0) 2021.03.15
    분석  (0) 2021.03.10

    댓글

Designed by Tistory.