ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 1.0자료구조와 알고리즘
    자료구조(C)/자료구조와 알고리즘 2020. 7. 6. 14:48

    자료구조?

    프로그램에서 자료를 정리하여 보관하는 구조

    ex) 스택, 큐, 리스트, 사전, 그래프, 트리 등

     

    컴퓨터 프로그램 구성

    흔히 프로그램 = 자료구조+알고리즘

    데이터(자료)를 처리하고 데이터 스트럭쳐(자료구조)를 사용하여 저장된다. 

    자료구조를 처리하는 절차가 있어야 한다.

    이 절차가 알고리즘(algorithm)이다.

     

    알고리즘?

    컴퓨터로 문제를 풀기 위한 단계적인 절차

    -> 문제와 컴퓨터가 주어진 상태에서 문제를 해결하는 방법을 정밀하게 장치가 이해할 수 있는 언어로 기술한 것이다.

    조건

    입력 : 0개 이상의 입력이 존재하여야 한다.

    출력 : 1개 이상의 출력이 존재하여야 한다.

    명백성 : 각 명령어의 의미는 모호하지 않고 명확해야 한다.

    유한성 : 한정된 수의 단계 후에는 반드시 종료되어야 한다.

    유효성 : 각 명령어들은 종이와 연필, 또는 컴퓨터로 실행 가능한 연산이어야 한다.

     

    알고리즘을 기술하는 방법

    1. 할글이나 영어 같은 자연어

    2. 흐름도(flowchart)

    3. 의사 코드(pseudo-code)

    4. 프로그래밍 언어

     

    1번은 약간의 모호성이 존재, 이 모호성을 제거하기 위하여 명령어로 사용되는 단어들을 명백하게 정의해야만 알고리즘이 된다.

    2번은 초심자에게 좋은 방법이지만, 복잡한 알고리즘일수록 기술하기 힘들다.

    3, 4번은 가장 많이 쓰여지는 방법이다.

    3번은 자연어보다는 더 체계적이고 프로그래밍 언어보다는 덜 엄격한 언어로써, 알고리즘을 기술하는 데만 사용되는 코드

    4번의 예약어들은 모두 명백한 의미를 가지고 있어서 알고리즘을 기술하는데 안성맞춤이다.

    '자료구조(C) > 자료구조와 알고리즘' 카테고리의 다른 글

    1.2 알고리즘의 성능 분석  (0) 2020.07.06
    1.1 추상 자료형  (0) 2020.07.06

    댓글

Designed by Tistory.