코젤브

알고리즘이란? 본문

컴공의 일상/알고리즘

알고리즘이란?

코딩하는 젤리 2022. 5. 5. 02:33

- 강좌의 목표

: 설계, 분석, 계산적 복잡도(문제 자체의 복잡도)

- 알고리즘

: 각 단계가 명확하게 정의되고 실행이 가능한 유한 시간대에 종료되는 어느정도의 일반성을 가진 일련의 절차

- 알고리즘의 요구조건

  • 유한시간 내 종료 termination
  • 명확성 definiteness
  • 실행 가능성 executableness
  • 기타: 일반성 generality

- 프로그램 설계 과정

프로그램 설계 과정

- 문제의 표기 방법

           - 문제: 답을 찾고자 던지는 질문

           - 파라미터(parameter): 문제에서 특정값이 주어지지 않은 변수

           - 문제의 사례(입력): 파라미터에 특정 값을 지정한 것

           - 사례에 대한 해답(출력): 주어진 사례에 관한 질문에 대한 값

- 알고리즘의 표기

           : C++에 가까운 의사코드 사용 (자연어, 프로그래밍 언어 사용X)

- 의사코드의 특징 (C++과 의사코드 차이점)

  • 배열 인덱스의 범위에 제한 없음
  • 프로시저의 파라미터에 2차원 배열 크기의 가변성 허용
  • 지역 배열에 변수 인덱스 허용
  • 수학적 표현식 허용
  • C++에 없는 타입 사용 가능
  • 제어 구조
  • 프로시저와 함수(C++도 같음)
    - 프로시저 : 작업을 정리한 절차
    - 함수 : 여러 작업을 위한 기능
  • 참조 파라미터를 사용해서 프로시저의 결과값 전달
    - 배열 : 참조 파라미터로 전달
    - 기타 : 데이터타입 이름 뒤에 &
    - const 배열 : 전달되는 배열의 값이 불변